iOS版:什么是Objective-C的事件侦听器的相同呢?(iOS: what is the eq

2019-07-29 07:55发布

在我的一些学习,我看到有人提到,在您的视图控制器,你可以有一个模型,并有某种听众对模型在它的变化。 我不认为我使用这些合适的名字,这可能是为什么我的搜索没有打开任何东西。 基本上我想从控制器移到我的服务器调用到我的模型,但我需要某种形式对他们的聆听者知道调用完成更新我的看法时。

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?