2016-01-27 29 views
11

我想升級我的項目升級到斯威夫特2,但我被困在下面的錯誤使用:語境型「AnyObject」不能與數組字面

Contextual type 'AnyObject' cannot be used with array literal

這裏是我的代碼:

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) { 

    let data = UIImageJPEGRepresentation(image, 0.08) 
    let file = PFFile(data: data!) 

    PFUser.currentUser()!["Picture"] = [file] 
    try! PFUser.currentUser()!.save()} 

而這裏的線路問題出在哪裏發生

 PFUser.currentUser()!["Picture"] = [file] 

非常感謝您的幫助! (我是初學者,...)

+0

我的答案是否適合您? –

+0

它的工作原理,但我現在有另一個問題,我現在得到以下錯誤:無效類型的關鍵圖片,預期的數組,但得到文件 – Mansour

+0

,而代碼以前完美工作(並感謝您的幫助很多) – Mansour

回答

5

替代這一行:

PFUser.currentUser()!["Picture"] = [file] 

有:

PFUser.currentUser()!["Picture"] = file 

編輯:如前所述,它是更好的做法是不強求好一個有條件地做些如下的事情:

guard let user = PFUser.currentUser() else { 
    return 
} 
user["Picture"] = file 
+0

最好不要鼓勵強制拆封的可選項。我們應該'保護讓用戶= PFUser.currentUser()其他{返回}',然後'用戶[「圖片」] =文件' – Sajjon

+0

是的,同意......你是對的。 –

相關問題