iOS:来自另一个线程的Objective-C属性调用为空

时间:2016-09-28 20:59:00

标签: ios objective-c multithreading nsmutablearray

我有单例,其中几个类和Threads正在更新NSMutableArray。但是当访问NSMutableArray以查看NSMutableArray的内容时是空的。

这是我的代码的一部分:

@property (strong, nonatomic) NSMutableArray *myArray;

-(NSMutableArray*) myArray{
    if (_ myArray == nil) {
        _myArray = [[NSMutableArray alloc]init];
    }
    return _myArray;
}

-(void)addToArray:(NSString*)myString{
    [self.myArray addObject:myString];
}

你们中的任何人都知道为什么NSMutableArrays总是为空?

我真的很感谢你的帮助

1 个答案:

答案 0 :(得分:0)

许多类可能同时读取/写入此数组,从而产生错误的值。您需要的是将操作同步到此数组。

这是一个很好的答案:

Does @synchronized guarantees for thread safety or not?