Jos*_*hDG 4 cocoa-touch global-variables objective-c ios
我一直在阅读关于此的不同内容,这看起来很危险.有人可以告诉我正确的模式来定义可以全局使用的通知字符串吗?我尝试过的所有内容都会导致链接器错误.例如,在我的GlobalVariables单例中,我添加了:
#import <Foundation/Foundation.h>
extern NSString *kMPTimeChanged;
@interface GlobalVariables : NSObject etc.
Run Code Online (Sandbox Code Playgroud)
然后在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;
}
Run Code Online (Sandbox Code Playgroud)
它没有构建,我有多个错误.
Hol*_*lly 16
在你的.h文件中你应该写:
extern NSString * const kMPTimeChanged;
Run Code Online (Sandbox Code Playgroud)
在你的.m文件中,你应该写:
NSString * const kMPTimeChanged = @"My Constant";
Run Code Online (Sandbox Code Playgroud)
这些都应该在你的@interface和@implementation块之外.