下面是我的单例中的代码,用于将字符串添加到数组中。第一个NSLog返回正确的字符串,但第二个NSLog不返回null。如果我需要添加任何相关代码,请告诉我。感谢。
+(void) addArray:(NSString *)string
{
NSLog(@"%@",string);
Singleton *shared = [Singleton sharedManager];
[shared.array addObject:string];
NSLog(@"array: %@", shared.array);
}
我将此代码添加到我的singleton.m
- (id)init
{
self = [super init];
if (self) {
// Work your initialising magic here as you normally would
array = [[NSMutableArray alloc]init];
}
return self;
}
在我的程序的另一部分中,我运行此代码并打印出正确的信息
+(void) setPoints:(int) points
{
Singleton *shared = [Singleton sharedManager];
shared.points = points;
NSLog(@"%d",shared.points);
}
这是我的Singleton方法
+ (Singleton *)sharedManager
{
static Singleton *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[Singleton alloc] init];
// Do any other initialisation stuff here
array = [[NSMutableArray alloc]init];
});
return sharedInstance;
}
答案 0 :(得分:0)
您可能忘记在Singleton init中使用alloc-init数组。