我想将一个类分配给一个委托,但它会引发一个错误:预期的成员名称'。' 我该怎么办?
let frc = NSFetchedResultsController(fetchRequest: fr, managedObjectContext: Utility.managedObjectContext(), sectionNameKeyPath: nil, cacheName: nil)
frc.delegate = Utility.class
答案 0 :(得分:2)
不能将类用作委托。委托必须是类的实例。没有实例化的内容无法引用。什么不存在不能使用。
您使用NSURLConnection
提供的示例不会将类用作委托。
它使用符合协议NSURLConnectionDelegate
的类,并在初始化期间创建此类的对象。神奇发生在NSURLConnection
对象的初始化中。
这与将.delegate设置为已存在的对象完全不同。
setter不会为您创建用于协议方法的对象,但希望提供已经实例化的对象。
同样适用于Objective-C。
查看http://www.iosnomad.com/blog/2014/8/6/swift-nsfetchedresultscontroller-trickery有关如何在Swift类中使用NSFetchedResultsController
的示例(您可以在Objective-C中非常类似地使用它)