在我的一些学习,我看到有人提到,在您的视图控制器,你可以有一个模型,并有某种听众对模型在它的变化。 我不认为我使用这些合适的名字,这可能是为什么我的搜索没有打开任何东西。 基本上我想从控制器移到我的服务器调用到我的模型,但我需要某种形式对他们的聆听者知道调用完成更新我的看法时。
Answer 1:
考虑委托代表教程
或块多一点先进的基本块教程
只是代表开始,
你也可以使用NSNotification NSNotification教程 ,但不推荐,因为它们传播到每一个类,你可能只需要发送消息到一个特定的类不是每一个
Answer 2:
属于C#的世界里,我得去客观C(我的工作)。 我认为事件等同的目标C是这样实现:
创建所有的事件的方法的协议:
@protocol MyDelegate <NSObject>
- (void)myEvent;
@end
在你的类应该发送的情况下,添加:
@interface MyClassWichSendEvent : NSObject
@property (nonatomic, retain) IBOutlet id<MyDelegate> delegate;
@end
提高你想要,例如事件:
- (IBAction)testEvent:(NSButton*)sender
{
[self.delegate myEvent];
}
现在,在你的监听器类,你应该听像这样的事件:
该协议添加到您的类听
@interface Document : NSDocument<MyDelegate>
在实施中,对init或在界面生成器,必须链接的对象实例的委托与类听自我听。
在代码
-(void)awakeFromNib
{
myObjToListen.delegate = self;
}
- 在界面生成器 - > IBOutlet中从委托到你听的课。
最后,实现监听器类的方法:
- (void)myEvent
{
NSLog(@"i have listen this event !");
}
对不起,我的英语,我希望帮助的人谁从Java或C#去了。
Answer 3:
你要找的志愿 - 键/值观测:
https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html
http://nachbaur.com/2011/07/29/back-to-basics-using-kvo/
代表+通知是好的对象之间的通讯,但它们不会自动发送封邮件,当值的变化(从你的问题,那就是你所要求的约)
Answer 4:
我想你可能会寻找NSNotificationCenter这是传递消息给谁就可能被监听的方式。 所以,你可以在你的模型从事件发出通知,只是听它在您的控制器。 一个清洁的方法可能是实现自己的协议与代表。
Answer 5:
Objective C的使用代表
这篇文章有一个很好的例子: 我如何创建Objective-C的代表?
文章来源: iOS: what is the equivalent of an event listener in Objective-C?