我一直在阅读不同的东西,这似乎很容易造成混淆。有人可以告诉我正确的模式来定义可全局使用的通知字符串吗?我尝试过的所有操作都导致了链接器错误。例如,在我的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块之外。

07-24 09:23