使用 PHFetchResult 的“enumerateObjectsUsingBlock”时出现编译器错误

Compiler error when using `enumerateObjectsUsingBlock` of PHFetchResult

我遇到了以下编译错误:

Cannot invoke 'enumerateObjectsUsingBlock' with an argument list of type '((_, _, _) -> Void)'

我想通过 XCode6.3.

的截图可能更容易理解我的情况

此代码用于测试使用 fetchAssetsWithMediaType 方法获取 PHAsset 对象。如您所知,此方法 returns PHFetchResult 具有枚举方法。我试图通过 enumerateObjectsUsingBlock 枚举结果中的所有对象。不幸的是,Swift 编译器给了我一个错误。经过长时间的调查,我最终得出结论,这段代码是正确的。

供您参考,以上代码是通过谷歌搜索找到的,用于测试 PHAsset。

我终于找到了问题的答案。 enumerateObjectsUsingBlock 块的第一个参数是 AnyType!。因此,append 方法的 obj 参数应该向下转换为 as!

总之,我认为错误信息并不能准确地指出这个错误。当块中出现错误时,编译器似乎会向程序员提供此类错误消息。