Swift Generic类作为委托



我在swift中使用泛型类作为委托时遇到了一个问题。例如,我尝试使用一个通用的NSFetchedResultsDegate,定义为:

class FetchedTableController<T:NSManagedObject> : NSFetchedResultsControllerDelegate

在类中,我设置了一个NSFetchedResultsController,并将委托设置为"self"。但由于某种原因,委托方法从未被调用。当我删除类的Generic部分时,代表们得到了预期的调用:

class FetchedTableController : NSFetchedResultsControllerDelegate

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

这似乎在Xcode7中得到了修复。我可以成功地将泛型类用作NSFetchedResultsControllerDelegate、UITableViewControllerDelegate等……您甚至不需要在类中添加@objc前缀。

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

最新更新