我正在尝试在
Swift 4中为NSFetchedResultsController类编写一个简单的扩展.
这是我的第一次尝试 – 在Swift 3中有效:
public extension NSFetchedResultsController { public func sectionCount() -> Int { if self.sections == nil { return 0 } return self.sections!.count } }
但是我在Swift 4的Xcode 9 beta 2中得到了这个编译错误:
Extension of a generic Objective-C class cannot access the class’s
generic parameters at runtime
我尝试过其他变种无济于事.请注意,我可以创建绑定到与resultType匹配的特定类型的NSManagedobject的扩展名;但是这样做的缺点是我需要为NSFetchedResultsController使用的每个托管对象类型创建一个扩展.
最新的Swift 4文档似乎不能很好地解释这一点.
解决方法
我想我找到了这个答案.
该功能需要可用于Objective-C.
该功能需要可用于Objective-C.
将@objc添加到func应该删除编译错误.至少它对我有用!