代表们发送信息 to you.
例如:如果您使用加速度计委托,您将收到有关加速度计的消息。
如果您使用新的中微子检测委托,您将收到有关在该区域检测到的任何中微子的消息。
如果您使用 PopUps,PopUps 会向您发送消息。完成的方式是使用 PopUp 的委托。有很多很多的例子。
因此,代表们发送消息。
就是这么简单。
您可能会问,“它把这些消息发送到哪里?”
答案是这样的:它将消息发送到您设置“.delegate”的地方。
当您“设置委托”时,您所做的就是说出您希望消息到达的位置。
Hence,
blah.delegate = AmazingPlace 会将消息发送到“amazingPlace”。
blah.delegate = Something Else 会将消息发送到“Somewhere Else”。
blah.delegate = self 将发送消息......to you.
很多时候,您希望消息发送给“您”,因此您只需说“blah.delegate = self”
忘记那行代码是一个非常常见的错误。
如果你忘记了那行代码,你就被塞满了。消息去nowhere,而你则绞尽脑汁试图找出问题所在。
您还必须做的其他事情:当您使用委托时,您必须事先宣布您想要使用委托。
怎么做?
这很容易...
在过去的 Objective-C 时代...
// old days!
@interface AppDelegate_Pad : NSObject <UIApplicationDelegate>
@interface BigTop : UIViewController <ASIHTTPRequestDelegate,
UIPopoverControllerDelegate>
@interface Flying : UIViewController <UIAccelerometerDelegate>
您可以看到“BigTop”想要使用两个委托,即 ASIHTTPRequestDelegate 和 UIPopoverControllerDelegate。而“Flying”只想使用一个委托 - 它想要使用加速度计。
在斯威夫特...
class YourClass:UIViewController, SomeDelegate, AnotherDelegate
如果不到处使用代理,你就无法在 iPhone 上做很多事情。
iOS 中随时随地都在使用委托。
一个类可能使用十几个代表是完全正常的。也就是说,您的班级将希望从十几个代表那里获取消息。
如今使用 Swift,你只需输入
blah.delegate = self
仅此而已。
这就是你正在做的事情。代表们发送信息。你不得不说where您希望消息能够发送。通常,您希望他们去找“您”,所以在这种情况下您只需说blah.delegate=self
.