无法在单例中将 object 添加到 NSMutableArray
Can't add object to NSMutableArray in singleton
我创建了一个单例,我正在尝试将 object 添加到 self.timelineArray
,但我做不到。当我这样做时,我有 9 objects:
NSNumber* nmb = [[NSNumber alloc] initWithInt:1];
[self.dataManager.timelineArray addObject:nmb];
插入nmb
object后,我还有9个object。
这是我的单例header(只有重要的部分):
@interface DataManager : NSObject
@property (nonatomic, strong) NSMutableArray* timelineArray;
这是我的单例实现(只有重要的部分):
#import "DataManager.h"
static DataManager* sharedInstance = nil;
@implementation DataManager
+ (DataManager *) sharedInstance{
@synchronized(self)
{
if (sharedInstance == nil)
sharedInstance = [[self alloc] init];
}
return sharedInstance;
}
- (id)init {
if (self = [super init])
{
self.timelineArray = [[NSMutableArray alloc] init];
}
return self;
}
这只是简单的编码,我似乎无法弄清楚为什么它不起作用。
我建议您添加以下内容
NSNumber* nmb = [[NSNumber alloc] initWithInt:1];
[[DataManager sharedInstance]timelineArray addObject:nmb];
这将始终添加到 singleton
而不是 singleton
的 instance
尝试修改不可变数组 (NSArray) 将导致此问题。
替换
[responseObject objectForKey:@"timeline"]
和 [[NSMutableArray alloc] initWithArray:[responseObject objectForKey:@"timeline"]
这是基于问题的评论。
我创建了一个单例,我正在尝试将 object 添加到 self.timelineArray
,但我做不到。当我这样做时,我有 9 objects:
NSNumber* nmb = [[NSNumber alloc] initWithInt:1];
[self.dataManager.timelineArray addObject:nmb];
插入nmb
object后,我还有9个object。
这是我的单例header(只有重要的部分):
@interface DataManager : NSObject
@property (nonatomic, strong) NSMutableArray* timelineArray;
这是我的单例实现(只有重要的部分):
#import "DataManager.h"
static DataManager* sharedInstance = nil;
@implementation DataManager
+ (DataManager *) sharedInstance{
@synchronized(self)
{
if (sharedInstance == nil)
sharedInstance = [[self alloc] init];
}
return sharedInstance;
}
- (id)init {
if (self = [super init])
{
self.timelineArray = [[NSMutableArray alloc] init];
}
return self;
}
这只是简单的编码,我似乎无法弄清楚为什么它不起作用。
我建议您添加以下内容
NSNumber* nmb = [[NSNumber alloc] initWithInt:1];
[[DataManager sharedInstance]timelineArray addObject:nmb];
这将始终添加到 singleton
而不是 singleton
instance
尝试修改不可变数组 (NSArray) 将导致此问题。
替换
[responseObject objectForKey:@"timeline"]
和 [[NSMutableArray alloc] initWithArray:[responseObject objectForKey:@"timeline"]
这是基于问题的评论。