在swift中使用泛型类作为委托时遇到了问题。例如,我试图使用定义为:
的通用NSFetchedResultsDelegateclass FetchedTableController<T:NSManagedObject> : NSFetchedResultsControllerDelegate
在课程中我设置了一个NSFetchedResultsController并将委托设置为'self'。但由于某种原因,委托方法永远不会被调用。当我删除该类的通用部分时,代理按预期调用:
class FetchedTableController : NSFetchedResultsControllerDelegate
是否有使用泛型类作为委托的解决方案?
答案 0 :(得分:0)
这似乎是在Xcode7修复的。我可以成功地使用泛型类作为NSFetchedResultsControllerDelegate,UITableViewControllerDelegate等...你甚至不需要在类中添加@objc前缀。
但是,该类必须仍然有一些NSObject超类。