2014-10-06 64 views
0

我試圖從PFObjects數組填充項目表視圖:解析/斯威夫特 - 「AnyObject是無法轉換爲字符串

var obj: PFObject = self.usersArray[indexPath.row] 
cell.textLabel?.text = obj.objectForKey("username") 

但是,如果我那樣做,我得到的編譯器錯誤:「AnyObject是無法轉換爲字符串」
就是這樣,我總是用Objective-C的做到了,我怎麼排序了這一點

+0

與您的問題無關,但您可以使用'obj [「username」]''而不是'obj.objectForKey(「username」)''''的簡短語法 – 2015-04-30 17:35:24

回答

3

您需要顯式轉換來避免這個錯誤:?

cell.textLabel?.text = obj.objectForKey("username") as String 

這是因爲obj.objectForKey(...)返回AnyObject類型的對象,和SWIFT不允許隱式鑄造此爲另一種類型,而目標C並(想象它是強制性的,以寫(NSString *)在Objective-C obj.objectForKey(...))。

0

爲什麼不以簡單的方式編寫代碼並停止使用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 

讓我知道這對你的作品。