它是一种在Swift中将类设置为委托的方法吗?

时间:2014-09-20 08:39:18

标签: ios swift delegates

我想将一个类分配给一个委托,但它会引发一个错误:预期的成员名称'。' 我该怎么办?

let frc = NSFetchedResultsController(fetchRequest: fr, managedObjectContext: Utility.managedObjectContext(), sectionNameKeyPath: nil, cacheName: nil)
frc.delegate = Utility.class

1 个答案:

答案 0 :(得分:2)

不能将类用作委托。委托必须是类的实例。没有实例化的内容无法引用。什么不存在不能使用。

您使用NSURLConnection提供的示例不会将类用作委托。

它使用符合协议NSURLConnectionDelegate的类,并在初始化期间创建此类的对象。神奇发生在NSURLConnection对象的初始化中。

这与将.delegate设置为已存在的对象完全不同。

setter不会为您创建用于协议方法的对象,但希望提供已经实例化的对象。

同样适用于Objective-C。

查看http://www.iosnomad.com/blog/2014/8/6/swift-nsfetchedresultscontroller-trickery有关如何在Swift类中使用NSFetchedResultsController的示例(您可以在Objective-C中非常类似地使用它)