Jak*_*ake 7 cocoa objective-c touch
考虑以下常见情况:
你MainView的Cocoa应用程序中有一些是从NIB加载的,它由a控制MainViewController.你MainView包含一些控件,比如a UILabel infoLabel.您还有一个委托MyDelegate类,它接收某种事件.
您希望确保在MyDelegate收到其事件时,infoLabel已适当更新.但是,问题是MyDelegate没有引用MainView或MainViewController不知道标签.
一种解决方案是传递MainViewController对委托对象的引用,但这感觉不对,因为您可能会发现自己处于对象具有彼此引用的不良情况.
解决这个问题的正确设计是什么?
在一个未透露姓名的开发者论坛中,有人写道:
因此,长话短说,我决定开始使用 NSNotifications。人们一直关注的斯坦福在线课程是由两位苹果工程师教授的。他们刚刚明确表示不要使用应用程序委托或全局变量,并表示要使用 NSNotifications、委托和 KV 观察。
如果苹果工程师是这么说的,我就会朝这个方向前进。
NSNotifications 非常巧妙,因为它们并没有真正干扰封装。侦听器仅侦听通知和对象 - 我认为它不必知道或关心是谁发送的。
因此,在您的示例中,我会考虑让委托发布标签已更改的通知,或者最好让控制器观察该属性(如果可能)。
| 归档时间: |
|
| 查看次数: |
2869 次 |
| 最近记录: |