2015-11-23 13 views
6

Ich versuche eine Funktion zu implementieren, die aufgenommenes Foto in einem benutzerdefinierten Album speichert, das dieser article folgt.Swift: Hinzufügen eines Fotos zu einem benutzerdefinierten Album

Aber ich begegnete Fehler in dieser Zeile (siehe article und Apple sample code):

albumChangeRequest!.addAssets([assetPlaceholder]) 

Kontext-bezogene Art von NSFastEnumeration kann nicht als Arrayliteral verwendet werden

+2

Just to add '!' nach 'AssetPlaceholder'. Der Fehler ist irreführend. – Hokage

Antwort

4

Dies geschieht, weil Unterzeichnung addAssets ist:

func addAssets(_ assets: NSFastEnumeration) 

Das bedeutet, dass es eine Sammlung erwartet, die NSFastEnumeration konform ist, von der Swift Array nicht tut, aber NSArray tut. So funktioniert die Erstellung NSArray von Ihrem Array PHObjectPlaceholder Objekt funktioniert gut.

let fastEnumeration = NSArray(array: [photo.placeholderForCreatedAsset!] as [PHObjectPlaceholder]) 
albumChangeRequest!.addAssets(fastEnumeration) 
5

Dies sollte 3 mit Swift arbeiten müssen

albumChangeRequest.addAssets([photoPlaceholder] as NSArray)

Verwandte Themen