我正在爲iOS4項目使用XCode 4.0.2。objective c - 使用類方法創建的警告「對象的潛在泄漏」
我有這個類構造一個對象的方法。這是我偶爾需要從應用程序的開始到結束的一個常量。
然而,在運行分析工具這給了我一個爲C物體報警「對象的潛在泄漏」。
我應該擔心嗎?我該如何解決它?
謝謝
我正在爲iOS4項目使用XCode 4.0.2。objective c - 使用類方法創建的警告「對象的潛在泄漏」
我有這個類構造一個對象的方法。這是我偶爾需要從應用程序的開始到結束的一個常量。
然而,在運行分析工具這給了我一個爲C物體報警「對象的潛在泄漏」。
我應該擔心嗎?我該如何解決它?
謝謝
每次使用該方法時,都會通過(不建議使用)+new
方法創建一個新實例XYZ
。
如果您希望類別爲XYZ
的單個對象持續存在應用程序的末尾,則需要進行一些更改。最簡單的方法是在類初始化時創建這個對象。在任何課堂上,我們正在尋找在這裏.m文件,添加以下內容:
static XYZ *instance = nil;
+ (void)initialize {
if (self != [ThisClass class])
return;
instance = [[XYZ alloc] init];
instance.X = ...;
instance.Y = ...;
instance.Z = ...;
}
然後,你A
方法:
+ (XYZ *)A {
return instance;
}
您應該閱讀由Apple提供的Memory Management Programming Guide。
您應該在new
前加上您的方法名稱(+[XYZ A]
)作爲new
的前綴,以明確您的方法的調用者知道他們負責釋放他們收到的對象。您會將該方法重命名爲+[XYZ newA]
。
如果你不想重命名你的方法,你至少應該返回一個自動釋放的對象,例如:將最後一行更改爲return [c autorelease];