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

前端之家收集整理的这篇文章主要介绍了ios – 如何在Swift 4中编写NSFetchedResultsController的扩展前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在 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.

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

猜你在找的iOS相关文章