gpt4 book ai didi

ios - NSNotification 被调用了两次

转载 作者:行者123 更新时间:2023-11-29 03:05:01 24 4
gpt4 key购买 nike

我正在使用这段代码来实现 NSNotification 监听器:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(addUserItemNotification:) name:kFinishFillUserDetails object:nil];
}
return self;
}

我如何删除它:

-(void)viewDidUnload {
[super viewDidUnload];

[[NSNotificationCenter defaultCenter] removeObserver:self name:kFinishFillUserDetails object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self];
}

我就是这样调用它的:

[[NSNotificationCenter defaultCenter] postNotificationName:kFinishFillUserDetails object:nil userInfo:dic];

我有这个问题:

如果我创建 View Controller 并将其添加到 UINavigationController,然后将其从 UINavigationController 中删除,然后从相同类型创建另一个 Controller 并将其添加到 UINavigationController,然后 NSNotification 调用了两次而不是一次。知道为什么会这样吗?

这就是我创建 UIViewController 的方式:

UsersViewController *usersVC = [[[UsersViewController alloc]initWithNibName:@"UsersViewController" bundle:nil] autorelease];
[[self navigationController] pushViewController:usersVC animated:NO];

最佳答案

viewDidUnload 自 iOS 6 以来已弃用,并且在 View Controller 生命周期中不再调用它。

尝试将注销代码移动到dealloc

关于ios - NSNotification 被调用了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22874728/

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