我在 Objective C 中创建了一个单例类。如下所示:
@interface SingletonClass : NSObject{
NSMutableArray *instanceArray;
}
@property(nonatomic,retain)NSMutableArray *instanceArray;
+(SingletonClass*)sharedInstance;
@end
@implementation SingletonClass
@synthesize instanceArray;
static SingletonClass *sharedInstance =nil;
+(SingletonClass*)sharedInstance
{
if(sharedInstance==nil){
sharedInstance=[[super allocWithZone:NULL]init];
}
return sharedInstance;
}
-(id)init{
self=[super init];
if(self){
instanceArray=[[NSMutableArray alloc]init];
[instanceArray addObject:@"One"];
[instanceArray addObject:@"Two"];
}
return self;
}
+(id)allocWithZone:(NSZone *)zone{
return [self sharedInstance];
}
@end
我知道可以使用以下代码从任何地方访问它:
SingletonClass *singletonObject=[SingletonClass sharedInstance];
而且instanceArray 可以通过singletonObject.instanceArray 在任何地方访问。
现在我的问题是,是否可以通过添加新对象来修改数组?会坚持下去吗?因为我试图从一个类中添加一个对象
[singletonObject.instanceArray addObject:@"Three"];
当我检查另一个类的数组内容时,该数组仅包含两个默认初始化的值。我从另一个类添加的值没有显示出来。可能是什么问题呢 ?我在这里错过了什么吗?请帮忙。