Singleton对象中的NSMutableArray

时间:2011-12-01 23:26:06

标签: iphone objective-c

我想构建一个所有类都可以访问它的共享对象。 我希望在这个对象中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。

1 个答案:

答案 0 :(得分:3)

您正在尝试从类方法设置实例变量。相反,您应该在单身人士的array方法中创建-init。这样,当您发送消息sharedManager = [[self alloc] init];时,将为该共享实例配置数组。

- (id)init
{
    self = [super init];

    if (!self)
        return nil;

    array = [[NSMutableArray alloc] init];

    return self;
}