2016-01-27 13 views
11

Próbuję zaktualizować uaktualnić mój projekt Swift 2, ale utknął na następujący błąd:typ kontekstu „AnyObject” nie może być używany z tablicy dosłownym

Contextual type 'AnyObject' cannot be used with array literal

Oto mój kod:

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()} 

A oto wiersz gdzie problem występuje

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

Dzięki wielkie za pomoc !! (Jestem początkujący, ...)

+0

Czy moja odpowiedź działa dla ciebie? –

+0

To działa, ale mam teraz inny problem, teraz dostaję następujący błąd: nieprawidłowy typ dla klucza Obraz, oczekiwana tablica, ale mam plik – Mansour

+0

, podczas gdy kod działał doskonale wcześniej (i bardzo dziękuję za pomoc) – Mansour

Odpowiedz

5

substytut ta linia:

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

z:

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

Edit: Jak zauważył, lepiej jest praktyka nie wymuszać rozmota? warunkowe i wykonaj następujące czynności:

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

Lepiej nie zachęcać do rozwijania opcji. Powinniśmy "ochronić niech użytkownik = PFUser.currentUser() else {return}', a następnie 'user [" Picture "] = file' – Sajjon

+0

Tak, zgodził się ... Masz rację. –

Powiązane problemy