如果一个对象提供设置委托对象 - 我是否必须设置一个?

时间:2014-10-11 12:30:29

标签: objective-c cocoa cocoa-touch delegates

许多Cocoa类提供设置委托。现在我的相当简单的问题是:在这种情况下我是否必须设置委托,还是设置委托是可选的?

例如,我使用NSSharingService 它带有一个delegate属性,如果我设置一个,我可以在这个委托上实现 NSSharingServiceDelegate Protocol 。 如果我对调用此协议中的任何方法不感兴趣,是否仍需设置委托并实现这些方法(作为空方法)?
或者是否可以选择不设置代理?

1 个答案:

答案 0 :(得分:1)

设置委托并不总是必须的,但是如果你设置了委托,那么它必须实现委托协议中声明的@required方法。

话虽如此,如果您想构建一个高质量,强大的应用程序,大多数时候设置代表是正确的做法。

NSSharingService代表的特定情况下,我认为您应该至少对sharingService:didShareItems:sharingService:didFailToShareItems:error:感兴趣,至少是为了记录这些事件。但是,您很可能也希望在共享内容时向用户提供某种反馈,以改善用户体验。