在 IASKAppSettingsViewController 的子类中更改了通知



我有一个IASKAppSettingsViewController的子类,当然,我用它来显示和处理我呈现给用户的设置的各种事件。在此子类中,我尝试通过将以下行添加到-(void)viewDidLoad来接收设置已更改的通知:

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

问题是方法设置已更改,永远不会被调用。我认为还有其他方法可以做到这一点,或者我在这里做错了什么。此过程在其他类中确实对我有用,因此我认为IASKAppSettingsViewController有一些特殊之处阻止了它的工作。有人可以指出我正确的方向吗?

编辑 #1

通过GitHub收到来自Future Tap的消息,他要求我检查示例应用程序。 我这样做了,示例应用程序不使用IASKAppSettingsViewController的子类。 此后,我又添加了另一个addObserver,也没有被调用。 我验证了两个addObserver调用都在执行,所以这不是原因。

编辑#2

我的应用程序中似乎有些非常不对劲。 我有多个类遵守此通知,它们都对要调用的方法使用相同的名称(设置已更改)。 当我在一次addObserver调用中按住 Command 键单击方法名称时,Xcode 会将我带到另一个类的设置更改方法。 这可能是导致我的一些观察者方法不被调用的原因。

使用Future Tap,我们发现"IASKAppSettingsViewController"在视图消失时删除了所有观察者。 这导致我设置的观察者被删除,因此不被调用。 代码已修复,我的问题已解决。

最新更新