我對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