我一直在阅读不同的东西,这似乎很容易造成混淆。有人可以告诉我正确的模式来定义可全局使用的通知字符串吗?我尝试过的所有操作都导致了链接器错误。例如,在我的GlobalVariables单例中,我添加了:
#import <Foundation/Foundation.h>
extern NSString *kMPTimeChanged;
@interface GlobalVariables : NSObject etc.
然后在init中:
@implementation GlobalVariables
#pragma mark Singleton Methods
+ (id)sharedGlobals {
static GlobalVariables *sharedGlobals = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedGlobals = [[self alloc] init];
});
return sharedGlobals;
}
- (id)init {
if (self = [super init]) {
kMPTimeChanged=@"kMPTimeChanged";
return self;
}
它没有建立,我遇到了多个错误。
最佳答案
在您的.h文件中,您应该输入:
extern NSString * const kMPTimeChanged;
在您的.m文件中,您应该输入:
NSString * const kMPTimeChanged = @"My Constant";
这些都应该在
@interface
和@implementation
块之外。