NSNotifications是最佳实践

Ray*_*eck 26 objective-c nsnotification c-preprocessor

在尝试从显示获取数据的视图控制器中取消模型时,在异步提取完成时,我发布了NSNotification.

 [[NSNotificationCenter defaultCenter] postNotificationName:@"foobarFetchSuccess" object: foo];
Run Code Online (Sandbox Code Playgroud)

我养成了使用的习惯:

 #define FOO_FETCH_SUCCESS  @"foobarFetchSuccess"
Run Code Online (Sandbox Code Playgroud)

在一个公共头文件中,然后将其用于addObserver:和removeObserver:以及postNotificationName:

 [[NSNotificationCenter defaultCenter] addObserver:self @selector(gotData)
                                              name:FOO_FETCH_SUCCESS object: baz];
Run Code Online (Sandbox Code Playgroud)

所以@"foobarFetchSuccess"字符串遍布整个地方.还有更多像他一样的人.那么一次声明一个字符串并在任何地方使用它的最佳方法是什么?

小智 54

至于在项目中使用常量字符串,还有关于Stack Overflow的另一个问题:Objective C中的常量.

至于命名通知,Cocoa的编码指南建议如下:

通知由全局NSString对象标识,其名称以这种方式组成:

[Name of associated class] + [Did | Will] + [UniquePartOfName] + Notification