目标C - 两个词典使用相同的值,强或弱



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

在游戏中

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

在用户.m

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新