上下文类型"NSFastEnumeration"不能与数组文字一起使用

WYS*_*WYS 7 ios swift swift3

斯威夫特3,你会这样做吗?

let changeRequest = PHAssetCollectionChangeRequest(...)
let fastEnumeration = NSArray(array: [PHObjectPlaceholder])
albumChangeRequest?.addAssets(fastEnumeration)
Run Code Online (Sandbox Code Playgroud)

或这个?

let changeRequest = PHAssetCollectionChangeRequest(...)
albumChangeRequest?.addAssets([PHObjectPlaceholder] as NSFastEnumeration)
Run Code Online (Sandbox Code Playgroud)

有什么区别?

OOP*_*Per 11

正如您所发现的(您的代码有一些不一致并导致其他错误,更好地更新它),您不能使用as-casting指定Array文字的类型NSFastEnumeration.

NSFastEnumeration在你的情况下,你需要找到一个符合的正确类NSArray.

通常写这样的东西:

changeRequest?.addAssets([/* needs instances, not type...*/] as NSArray)
Run Code Online (Sandbox Code Playgroud)