Swift Generic类作为委托

时间:2014-10-12 10:22:27

标签: ios objective-c generics swift delegates

在swift中使用泛型类作为委托时遇到了问题。例如,我试图使用定义为:

的通用NSFetchedResultsDelegate
class FetchedTableController<T:NSManagedObject> : NSFetchedResultsControllerDelegate

在课程中我设置了一个NSFetchedResultsController并将委托设置为'self'。但由于某种原因,委托方法永远不会被调用。当我删除该类的通用部分时,代理按预期调用:

class FetchedTableController : NSFetchedResultsControllerDelegate

是否有使用泛型类作为委托的解决方案?

1 个答案:

答案 0 :(得分:0)

这似乎是在Xcode7修复的。我可以成功地使用泛型类作为NSFetchedResultsControllerDelegate,UITableViewControllerDelegate等...你甚至不需要在类中添加@objc前缀。

但是,该类必须仍然有一些NSObject超类。