我是目标 c 的新手,我遇到了一个有趣的情况,我需要两个指向相同值的不同 NSDictionary 对象。 在这种情况下,我应该在财产声明中使用强还是弱? 还是我应该在一个方面做强,在另一个做弱?
在游戏中
@property (strong/weak, nonatomic) NSDictionary* answers1;
在用户.m
@property(strong/weak, nonatomic) NSDictionary* answers2;
在这两种情况下,键都将是一个整数,但值将是我自己制作的答案对象。 答案 1 和答案 2 都需要存在大致相同的时间。 当需要摆脱一个时,摆脱另一个是可以的。
两者都应该strong
。每个类都应该执行自己的内存管理,而不必担心其他类正在做什么。因此,每个都应保留自己的strong
参考。
在这种情况下,最好的实际上是 copy
.这样,除了保留字典之外,您还将创建传递给您的字典的不可变副本,确保字典不会因外部影响而被修改(例如,传递稍后可能会更改的可变字典)。