gpt4 book ai didi

objective-c - 是否可以在不使用属性的情况下创建原子局部变量?

转载 作者:行者123 更新时间:2023-12-03 16:51:14 25 4
gpt4 key购买 nike

我在一个带有这样的代码的方法中

  __block NSMutableArray *myArray = [[NSMutableArray alloc] init];

[anotherArray enumerateObjectsWithOptions:NSEnumerationConcurrent
usingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

// do some calculation and generate an object
[myArray addObject:anObject];


}];

因为枚举是并发的,所以当多个线程尝试将对象添加到 myArray 时,我会崩溃。

我了解原子属性,但我想知道是否有一种方法可以在不使用属性的情况下使 myArray 原子和线程安全。我想将其保留在本地。

最佳答案

旧的 C 数组可能会有所帮助

id array[anotherArray.count];
id __strong *arrayPtr = array;

[anotherArray enumerateObjectsWithOptions:NSEnumerationConcurrent
usingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

// do some calculation and generate an object
arrayPtr[idx] = anObject;

}];

NSMutableArray *myArray = [NSMutableArray arrayWithObjects:array count:anotherArray.count];

关于objective-c - 是否可以在不使用属性的情况下创建原子局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23621345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com