cle*_*bit 9 migration nsfetchedresultscontroller swift3 ios10 xcode8
将项目升级到Swift 3后,以下初始化程序不再构建:
1 var fetchedResultsController: NSFetchedResultsController {
2 if _fetchedResultsController != nil {
3 return _fetchedResultsController!
4 }
5
6 let fetchRequest: NSFetchRequest = MyEntity.fetchRequest()
...
Run Code Online (Sandbox Code Playgroud)
错误发生在第1行:
"Unable to infer complex closure return type; add explicit type to disambiguate"
Run Code Online (Sandbox Code Playgroud)
第6行给出了进一步的错误:
"Generic parameter 'MyEntity' could not be inferred"
Run Code Online (Sandbox Code Playgroud)
cle*_*bit 18
经过一些阅读后,我了解到这一点NSFetchRequest,NSFetchedResultsController现在在iOS 10中是通用的,Apple建议明确指定它们的类型:
1 var fetchedResultsController: NSFetchedResultsController<MyEntity> {
2 if _fetchedResultsController != nil {
3 return _fetchedResultsController!
4 }
5
6 let fetchRequest: NSFetchRequest<MyEntity> = MyEntity.fetchRequest()
...
Run Code Online (Sandbox Code Playgroud)
一个有用的提示(对于Swift 3迁移中的这个和其他问题)就是在XCode中从模板创建一个新的应用程序!
| 归档时间: |
|
| 查看次数: |
5548 次 |
| 最近记录: |