val*_*alR 8 xcode core-data ios swift
我刚刚将我的项目升级到swift 1.2.经过5或6连续'转换到最新的Swift'动作:),我能够让它编译.然后我的很多UI测试都失败了.这是因为我的'NSFetchedResultsControllerDelegate'不再被调用.
在(我可能会说)一次非常幸运的尝试后,我发现这是因为我的代表不是NSObject.所以我能够通过继承NSObject或添加@obj来修复它.
之前:
class BasicFetchedResultControllerDelegate : NSFetchedResultsControllerDelegate
Run Code Online (Sandbox Code Playgroud)
后:
class BasicFetchedResultControllerDelegate : NSObject, NSFetchedResultsControllerDelegate
Run Code Online (Sandbox Code Playgroud)
我不认为我在更改日志中看到了与此相关的内容.导致这种情况的变化是什么?您是否注意到其他类似的变化?
在我填写错误报告后,我从Apple收到了这个:
此问题的行为基于以下内容:
这是Swift 1.2中的行为更改:非Objective-C派生类中的方法将不再被隐式标记为@objc,即使它们与Objective-C协议匹配也是如此.如果您不想扩展NSObject,可以使用@objc属性显式标记方法.这在https://developer.apple.com/library/ios/releasenotes/DeveloperTools/RN-Xcode/Chapters/xc6_release_notes.html#//apple_ref/doc/uid/TP40001051-CH4-的Xcode 6.3发行说明中有所描述.SW3.
| 归档时间: |
|
| 查看次数: |
765 次 |
| 最近记录: |