Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 原子属性的属性正在消失_Ios_Objective C_Atomic - Fatal编程技术网

Ios 原子属性的属性正在消失

Ios 原子属性的属性正在消失,ios,objective-c,atomic,Ios,Objective C,Atomic,我的模型对象上有一组属性:ModelObject声明如下: @property(原子、强、只读)LotsOfProps*LotsOfProps 在该对象内部有如下属性: LotsOfProps { @property (nonatomic, strong) AProp prop; @property (nonatomic, strong) MyProp myProp; } 我在不同的CollectionViewCell之间进行导航,每个单元格都有一个模型支持:model。在第一次导航时,属性出

我的模型对象上有一组属性:
ModelObject
声明如下:

@property(原子、强、只读)LotsOfProps*LotsOfProps

在该对象内部有如下属性:

LotsOfProps {
@property (nonatomic, strong) AProp prop;
@property (nonatomic, strong) MyProp myProp;
}
我在不同的CollectionViewCell之间进行导航,每个单元格都有一个模型支持:
model
。在第一次导航时,属性出现在
LotsOfProps
上,当我离开并返回到集合视图backed model并检查
LotsOfProps
上的属性时,我看到它们都为零。我已经在
Model
LotsOfProps
上声明了encodeWithCoder、decodWithCoder,据我所知,atomic已经自动生成了同步方法,所以即使在不同的线程上访问,它也应该是线程安全的


你知道为什么我的对象
LotsOfProps
上的所有属性都为零吗?我从来没有见过这样的问题,因此,如果有任何更多的信息,我可以提供请让我知道

我认为这与
原子的
没有任何关系。听起来你的意思是,当你“向后导航”时,这是一个不同的LotusProps对象。这很容易确认;只需将其记录到控制台并查看其内存地址。嗯,很有趣。我将检查是否是这种情况,我无法轻松确认是否是这种情况,因为当
LotsOfProps
的所有属性都设置为nil时,它是间歇性的。因此,为什么我认为这可能与种族条件有关。换句话说,有时当我从第一个单元格导航并返回时,所有属性都设置为nil。然而,大多数时候,情况并非如此。一旦所有属性都设置为nil,尽管它们在对象的生命周期中一直保持这种状态。那么,它可能与竞争条件有关。但这与糟糕的多线程代码有关,而不是因为它是原子的。然而,您是否注意到,在您的问题中,您没有说明“导航到集合视图备份模型”的含义,也没有显示任何代码??所以这里没有人知道你在做什么。基本上,你没有提供任何信息。所以你只要自己动手就行了。我给了你一个这样做的建议,但这当然只是一个建议。@MichaelGofron你把数据存储在细胞外的什么地方?表视图或集合中的单元格不用于直接存储模型数据。