ios - 使用 NSNotification 作为 if 参数

标签 ios iphone objective-c

只是想知道是否有办法使用 NSNotification 观察器作为 if 语句参数,或者在您的选择器部分有一段代码

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector( { SOME NEW CODE GOES HERE! ) name:@"addressTypeChanged" object:nil];

OR

if ([[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(self) name:@"addressTypeChanged" object:nil]) {

//some code//
}

最佳答案

您的第一行:不,无法在@selector() 中放置 block 。可能值得看看 @selector 是什么以及它是如何工作的。 Here's one particular question这可能会让您走上正轨。

第二行: addObserver:selector:... 方法有一个 void 返回类型,并且总是等同于 NOif 语句中。

您可能正在寻找的是基于 NSNotificationCenter block 的 API:

- (id)addObserverForName:(NSString *)name 
                  object:(id)obj 
                   queue:(NSOperationQueue *)queue 
              usingBlock:(void (^)(NSNotification *))block

block 参数将在收到通知时调用。

关于ios - 使用 NSNotification 作为 if 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22138707/

相关文章:

iphone - Phonegap iOS 应用程序屏幕在双击时向上滑动

iphone - 框架选型如何?

ios - 更改特定页面 UiPageViewController

ios - UICollectionView。如何在没有动画的情况下使用不同的元素(不仅是第一个)呈现 viewController?

ios - 如何动态准备选择器以与respondsToSelector匹配

ios - 从 iPhone 应用程序搜索并连接蓝牙设备

ios - 如何将 UITextField 添加到 CALayer 并使其工作

ios - 链接 iOS 框架

objective-c - iPad 标题栏。导航栏还是工具栏?

iphone - 如何在应用程序初始化之前获取 GPS 位置?