设置在IASKAppSettingsViewController的子类中更改了通知

时间:2013-10-24 14:39:26

标签: ios objective-c inappsettingskit

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

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

问题是从不调用方法settingsChanged。我认为还有其他一些方法可以做到这一点,或者我在这里做错了什么。这个过程在其他类中对我有用,所以我假设IASKAppSettingsViewController有一些特殊的东西阻止它工作。有人能指出我正确的方向吗?

编辑#1

通过GitHub收到来自Future Tap的消息,他让我查看示例应用程序。我做了,示例应用程序不使用IASKAppSettingsViewController的子类。我已经添加了另一个addObserver,但也没有被调用。我确认两个addObserver调用都在执行,所以这不是原因。

编辑#2

看来我的应用程序中出现了一些非常糟糕的事情。我有多个观察此通知的类,它们都使用相同的名称来调用方法(settingsChanged)。当我在一次addObserver调用中单击该方法的名称时,Xcode将我带到另一个类的settingsChanged方法。这可能是导致我的一些观察者方法无法被调用的原因。

1 个答案:

答案 0 :(得分:1)

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