0

我是目标 c 的新手,我遇到了一个有趣的情况,我需要两个指向相同值的不同 NSDictionary 对象。在那种情况下,我应该在属性声明中使用强还是弱?或者我应该做一个强而另一个弱?

在游戏.m

@property (strong/weak, nonatomic) NSDictionary* answers1;

在用户.m

@property(strong/weak, nonatomic) NSDictionary* answers2;

在这两种情况下,键都是整数,但值将是我自己制作的答案对象。answers1 和 answers2 都需要存在大致相同的时间。当需要摆脱一个时,摆脱另一个就可以了。

4

2 回答 2

3

两者都应该是strong。每个类都应该进行自己的内存管理,而不必担心其他类在做什么。因此,每个人都应该保留自己的strong参考。

于 2013-11-01T15:00:29.470 回答
0

在这种情况下,最好的实际上是copy. 这样,除了保留字典之外,您还将创建传递给您的字典的不可变副本,以确保字典不会因外部影响而被修改(例如,传递一个以后可以变异的可变字典)。

于 2013-11-22T23:20:00.340 回答