如何在Swift 4中编写NSFetchedResultsController的扩展

Dan*_*iel 8 generics ios swift swift4

我正在尝试NSFetchedResultsController在Swift 4中为类编写一个简单的扩展.

这是我的第一次尝试 - 在Swift 3中有效:

public extension NSFetchedResultsController
{
    public func sectionCount() -> Int
    {
        if self.sections == nil
        {
            return 0
        }

        return self.sections!.count
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我使用Swift 4在Xcode 9 beta 2中得到了这个编译错误:

泛型Objective-C类的扩展无法在运行时访问类的泛型参数

我尝试过其他变化无济于事.注意我可以创建一个绑定到特定类型NSManagedObject匹配的扩展名resultType; 但是这样做的缺点是我需要为每个使用的托管对象类型创建一个扩展NSFetchedResultsController.

最新的Swift 4文档似乎不能很好地解释这一点.

fis*_*her 6

我想我找到了这个问题的答案.该功能需要可用于Objective-C.

添加@objcfunc应该删除编译错误.至少它对我有用!