如何使用NSNotification从另一个类调用函数

时间:2017-08-01 10:16:24

标签: objective-c nsnotificationcenter nsnotification

我有A班和B班。

在B班我创建了如下函数:

-(void)conferance:(NSNotification *)notification {

    [self conferanceConfirming:provisioningURL];

}

在A类中,我试图以这种方式调用B类中的函数:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(conferance:)name:nil object:nil];

但它不起作用。任何帮助欣赏。

2 个答案:

答案 0 :(得分:0)

在B组中你需要写

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(conferance:)name:@"ConferanceNotification" object:nil];

从A班你必须打电话

[[NSNotificationCenter defaultCenter] 
        postNotificationName:@"ConferanceNotification" 
        object:nil];

" ConferanceNotification"是通知名称,由b类观察。然后它将在您定义时调用已注册的选择器。

答案 1 :(得分:0)

你需要在B类中添加Observer并在那里写方法。

此代码适用于B类:

-(void)conferance:(NSNotification *)notification {

    [self conferanceConfirming:provisioningURL];

}
- (void)viewDidLoad {
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(conferance:)name:nil object:nil];
}

从A类调用方法:

[[NSNotificationCenter defaultCenter] postNotificationName:@"ConferanceNotification" 
        object:nil];

以下是NSNotification.

的简要文档

你在AddObserver中犯了错误。如果您未添加NSNotificationObserver,则无法调用它。所以你需要先添加观察者,然后你必须调用它。