gpt4 book ai didi

ios - NSNotification 错误

转载 作者:搜寻专家 更新时间:2023-10-30 20:18:11 24 4
gpt4 key购买 nike

出于某种原因,我似乎卡在了 NSNotification 上。

我在 IBAction 按钮方法中发布通知。当用户点击该按钮时,我想收到通知,以便我可以在文本字段中设置文本。如果他们不点击按钮,NSString 仍将为 nil - 这就是为什么我需要知道他们何时点击按钮。

所以在按钮方法中我有这个:

- (IBAction)suggestionsButton:(UIButton *)sender {

self.usernameSelected = sender.titleLabel.text;
[[NSNotificationCenter defaultCenter] postNotificationName:@"UserTappedButton" object:self];
}

这是在 UITableviewCell 类中。

然后我在与此操作相关的 View Controller 中添加观察者:

 (void)viewDidLoad
{
[super viewDidLoad];

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(userPickedAuserNameFromSuggestion:) name:@"UserTappedButton" object:nil];
}

我检查过的东西:

  1. 在 post 方法之前首先调用观察者方法(它是)
  2. 两种方法的名字都是正确的
  3. 选择器签名正确

也查看了一些 SO 答案,但没有帮助。

伙计们,我在这里遗漏了什么吗?

*更新 *

抱歉 - 这是我想要调用的方法:

-(void)userPickedAuserNameFromSuggestion: (NSNotification *)notification
{
NSLog (@"Selected Username: %@", self.usernameCell.usernameSelected);

}

但是它没有被调用

最佳答案

-addObserver: 放入 viewDidAppear 并将 -removeObserver: 放入 viewDidDisappear

- (void)viewDidAppear:(BOOL)animated
{
//...
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(userPickedAuserNameFromSuggestion:)
name:@"UserTappedButton"
object:nil];
//...
}

- (void)viewDidDisappear:(BOOL)animated
{
//...
[[NSNotificationCenter defaultCenter] removeObserver:self
name:@"UserTappedButton"
object:nil];
//...
}

关于ios - NSNotification 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21619962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com