无法在单例中向NSMutableArray添加对象

时间:2015-03-10 12:11:30

标签: ios xcode6 singleton nsmutablearray

我做了一个单身人士,我正在尝试将对象添加到self.timelineArray,但我不能。当我这样做时,我有9个对象:

NSNumber* nmb = [[NSNumber alloc] initWithInt:1];
[self.dataManager.timelineArray addObject:nmb];

插入nmb对象后,我仍有9个对象。

这是我的单身标题(只有重要位):

@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;
}

这只是简单的编码,我似乎无法弄清楚它为什么不起作用。

2 个答案:

答案 0 :(得分:0)

我建议您添加以下内容

NSNumber* nmb = [[NSNumber alloc] initWithInt:1];
[[DataManager sharedInstance]timelineArray addObject:nmb];

这将始终添加到singleton而不是instance的{​​{1}}

答案 1 :(得分:0)

尝试修改不可变数组(NSArray)将导致这种情况。

替换 [responseObject objectForKey:@"timeline"][[NSMutableArray alloc] initWithArray:[responseObject objectForKey:@"timeline"]

。{

这是基于问题的评论。