2016-02-09 14 views
-1

我想整天遷移我的localStorage數據到realm.io ... 現在唯一的問題是我現在面臨的是,我可以用Swift realm.io可以使用object.getValueForKey(「key」)獲取對象屬性,但不能作爲object.key

object.valueforKey("key") 

獲取對象屬性,但不能使用簡單的一個

object.key 

這裏有我的代碼和平

 let realm = try! Realm() 
     let predicate = NSPredicate(format: "groupID = %@", group.valueForKey("groupID") as! String) 
     let current = realm.objects(apiGroup).filter(predicate) 
     let currentGroup = current[0] 
     print(currentGroup.valueForKey("token") as! String) 
     print(currentGroup.token) 

當我執行,這已被打印在控制檯上。

56abbf408cfea7941a8b30b7

fatal error: unexpectedly found nil while unwrapping an Optional value 

你能告訴我,如果這是正常的行爲,或者如果我可以做一些事情來獲得

「object.key」

符號?? 在此先感謝

+0

爲什麼要投票?讓我知道可能是我的一個微不足道的錯誤可以是解決方案 –

+0

我upvoted嘗試和阻止仇敵。 :)原因是'object.key'會與需要顯式定義的對象屬性有關。鑑於'object.valueForKey()'是iOS的一項名爲'鍵值編碼'的功能(https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/KeyValueCoding/Articles/KeyValueCoding.html)指定的鍵可能是也可能不是該對象的值。 – TiM

+0

請發表它作爲答覆我會接受它 –

回答

0

感謝所有您的意見。我結束了自定義的初始化創建一個自定義對象,並傳遞境界對象吧...... 然後我循環境界對象相同的對象屬性分配到自定義一個......例子

class Images:Object{ 
var picid:String = "" 
var path:String = "" 
var timeStamp:NSDate! 
override class func primaryKey() -> String{ 
    return "picid" 
} 
} 

class realmImages{ 
var picid:String! 
var path:String! 
var timeStamp:NSDate! 
init(object:Images){ 
    picid = object.valueForKey("picid") as! String 
    path = object.valueForKey("path") as! String 
    timeStamp = object.valueForKey("timeStamp") as! NSDate 
} 
} 
0

上航!我想我實際上並沒有正確理解這個問題!

如果.token屬性實際上是您班級的成員,那應該絕對有效。只需確認一下,你是否按照the documentation的規定正確定義了你的Realm模型子類的成員?

如果是這樣,你還是有問題,有可能是斯威夫特無法推斷對象的類型從過濾器返回的不是你的APIGroup對象(這可以解釋爲什麼valueForKey仍然有效)。

如果是這樣的話,說明該類型應該有所幫助:

let currentGroup = current[0] as APIGroup 

讓我知道這是否有助於!

+0

我會檢查...謝謝和..是的令牌是apiGroup的屬性 –

+0

我檢查了同樣的行爲。謝謝 –