我对iOS没有太多的经验,但我正在研究一些遗留代码。在该项目中,我们使用一个对象作为字典的关键字:iOS是否更改对象的引用?
NSMutableDictionary * dict;
RoleContainer * role = [Class getRole];
[dict setObject:[Class getData] forKey:role];
我们已将角色传递给另一个函数。当我们尝试检索数据时:
data = [dict objectForKey:role];
有时返回值为空。它约有10%的时间发生。我遍历代码,并在将角色传递给函数后发现“角色”对象的引用已被更改!例如,从0x002bf500到0x00222bad。
为什么?
什么是'Class'?强烈建议您不要使用'Class'作为您自己的类或实例的名称。但我怀疑你的问题是你没有使用ARC,而你没有保留一些对象。 – 2012-07-10 19:37:03
类只是一个假名,所以它没关系。但我认为你正在进行一些工作,因为我不知道保留是什么......让我做一些研究。谢谢, – 2012-07-10 19:48:38
在理解存储模型之前,您至少在基本级别上都无法用Objective-C做任何事情。 – 2012-07-10 19:51:03