我正在嘗試使用Parse-SwiftSDK,特別是在應用程式資料庫中,我有一些屬性是字典,比如這個:
elements: Dictionary<String, Any>
["test_string": "hello", "test_number": 22.2] // an example of a value for this property
現在我試著ParseObject用 Swift 寫這個:
進口基金會;匯入 ParseSwift
struct TestObject: ParseObject {
var objectId: String?
var createdAt: Date?
var updatedAt: Date?
var ACL: ParseACL?
var originalData: Data?
var elements: [String: Any]?
}
但是這樣做,我得到了這些錯誤:
型別“TestObject”不符合協議“Decodable”
型別“TestObject”不符合協議“Hashable”
型別“TestObject”不符合協議“Encodable”
型別“TestObject”不符合協議“Equatable”
我該怎么辦?感謝您的幫助
uj5u.com熱心網友回復:
Any并不Codable意味著它不符合Codable協議并且不能使用 JSON 發送到 Parse Server,這就是編譯器抱怨的原因。
如果您想要類似的東西Any,您可以通過 SPM 將AnyCodable包添加到您的專案中,并使用以下型別:AnyCodable、AnyEncodable、AnyDecodable。請參閱檔案中的注釋以及此處和此處的更多資訊。所以你的物件看起來像:
struct TestObject: ParseObject {
var objectId: String?
var createdAt: Date?
var updatedAt: Date?
var ACL: ParseACL?
var originalData: Data?
var elements: [String: AnyCodable]?
}
訪問AnyCodable, AnyEncodable, AnyDecodable;的值 您使用該.value屬性并嘗試將其轉換為預期的型別。您可以查看ParseSwift 測驗用例以獲取示例。使用您的TestObject型別:
var object = TestObject()
object.elements["myKey"] = AnyCodable("My value")
guard let storedValue = object.elements["myKey"]?.value as? String else {
print("Should have casted to String")
return
}
print(storedValue) // Should print "My value" to console
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/461360.html
標籤:解析 解析平台 解析-ios-sdk
上一篇:確定最適合字串的數值變數型別
