我对 iOS 没有太多经验,但我正在处理一些遗留代码。在项目中,我们使用一个对象作为字典的键:
NSMutableDictionary * dict;
RoleContainer * role = [Class getRole];
[dict setObject:[Class getData] forKey:role];
我们将角色传递给另一个函数。当我们尝试检索数据时:
data = [dict objectForKey:role];
有时返回值为空。它发生在大约 10% 的时间。我单步执行了代码,在将角色传递给函数后发现“角色”对象的引用已更改!例如,从 0x002bf500 到 0x00222bad。
为什么?