无法在单例中将 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];

插入nmbobject后,我还有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"]

这是基于问题的评论。