2016-04-30 14 views
1

ich verwende Xcode 7 und schnell ich diesen Fehler erhalten, wenn meinen app in meinem iPhone laufen:Wert kann nicht vom Typ zuordnen ‚[String: ANYOBJECT]

Wert kann nicht von [String : AnyObject] zuordnen UIImage? eingeben

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 
       imgview.image = info 
       [UIImagePickerControllerOriginalImage]as?UIImage; 
       dismissViewControllerAnimated(true, completion: nil) 
      } 

Antwort

1

das Problem ist, dass Sie nicht [] Operator auf einer separaten Zeile in Swift aufspalten: eckigen Klammern auf der gleichen Linie sein müssen, wie das Wörterbuch dereferenziert werden. Vergessen Sie auch nicht, die picker zu entlassen und freizugeben.

picker.dismissModalViewControllerAnimated(true) 
picker.release() 
imgview.image = info[UIImagePickerControllerOriginalImage] as UIImage 

Da Swift nicht zwingend Semikolons Aussagen zu brechen, müssen Sie mehr Aufmerksamkeit schenken, was geht auf die Linie. Ihr Code wie folgt interpretiert:

  • zuordnen info-imgview.image
  • Cast ein Array, das auf der UIImagePickerControllerOriginalImage besteht UIImage

Offensichtlich ist dies nicht die Wirkung, die Sie bekommen wollten. Das Verschieben von eckigen Klammern in derselben Zeile wie info wird dieses Problem beheben.

+0

Schauen Sie sich den Code in der Frage erneut (ich machte den gleichen Fehler). Die Wörterbuchsuche ist in zwei Zeilen unterteilt. – rmaddy

+0

@rpaddy Vielen Dank für das darauf hingewiesen, ich wusste nicht, dass die Zeilen verwandt waren, bis Sie das sagten. – dasblinkenlight

0

info ist ein Wörterbuch, was [String : AnyObject] bedeutet. Die Schlüssel des Wörterbuchs sind Zeichenfolgen und die Werte können ein beliebiges Objekt sein. Doch Sie schrieb:

imgview.image = info 

Also, Sie zugewiesen einige Wörterbuch zu imgview.image, noch imgview.image ist vom Typ UIImage optional. Stattdessen benötigen Sie etwas wie:

let image = info[UIImagePickerControllerEditedImage] as! UIImage 
imageView.image = image 
Verwandte Themen