我試圖從PFObjects
數組填充項目表視圖:解析/斯威夫特 - 「AnyObject是無法轉換爲字符串
var obj: PFObject = self.usersArray[indexPath.row]
cell.textLabel?.text = obj.objectForKey("username")
但是,如果我那樣做,我得到的編譯器錯誤:「AnyObject是無法轉換爲字符串」
就是這樣,我總是用Objective-C的做到了,我怎麼排序了這一點
我試圖從PFObjects
數組填充項目表視圖:解析/斯威夫特 - 「AnyObject是無法轉換爲字符串
var obj: PFObject = self.usersArray[indexPath.row]
cell.textLabel?.text = obj.objectForKey("username")
但是,如果我那樣做,我得到的編譯器錯誤:「AnyObject是無法轉換爲字符串」
就是這樣,我總是用Objective-C的做到了,我怎麼排序了這一點
您需要顯式轉換來避免這個錯誤:?
cell.textLabel?.text = obj.objectForKey("username") as String
這是因爲obj.objectForKey(...)
返回AnyObject
類型的對象,和SWIFT不允許隱式鑄造此爲另一種類型,而目標C並(想象它是強制性的,以寫(NSString *)
在Objective-C obj.objectForKey(...)
)。
爲什麼不以簡單的方式編寫代碼並停止使用objectForKey
。在最新的Parse
庫中,PFObject
支持通過使用[]
表示法(documentation)直接訪問自定義對象的屬性。
爲什麼textLabel是可選的?在使用之前你應該解開它。因此,如果textLabel
未被聲明爲可選,請將?
替換爲!
或將其完全刪除。
基本上你的代碼看起來是這樣的:
var obj: PFObject = self.usersArray[indexPath.row]
cell.textLabel!.text = obj["username"] as NSString // Remove ! if textLabel is not an optional
讓我知道這對你的作品。
與您的問題無關,但您可以使用'obj [「username」]''而不是'obj.objectForKey(「username」)''''的簡短語法 – 2015-04-30 17:35:24