我想构建一个所有类都可以访问它的共享对象。
我希望在这个对象中NSMutableArray
。
这就是我如何称呼这个对象
+(id)sharedManager{
@synchronized(self) {
if (sharedManager == nil){
sharedManager = [[self alloc] init];
array = [[NSMutableArray alloc] init];
}
}
return sharedManager;
}
这就是我定义NSMutableArray的方式:
@property (nonatomic,retain) NSMutableArray *array;
问题是在我在sharedManager方法中创建这个NSMutableArray后,每次我尝试访问该数组都等于Nil。
答案 0 :(得分:3)
您正在尝试从类方法设置实例变量。相反,您应该在单身人士的array
方法中创建-init
。这样,当您发送消息sharedManager = [[self alloc] init];
时,将为该共享实例配置数组。
- (id)init
{
self = [super init];
if (!self)
return nil;
array = [[NSMutableArray alloc] init];
return self;
}