2011-07-20 69 views

回答

3

每次使用該方法時,都會通過(不建議使用)+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; 
} 
4

您應該閱讀由Apple提供的Memory Management Programming Guide

您應該在new前加上您的方法名稱(+[XYZ A])作爲new的前綴,以明確您的方法的調用者知道他們負責釋放他們收到的對象。您會將該方法重命名爲+[XYZ newA]

如果你不想重命名你的方法,你至少應該返回一個自動釋放的對象,例如:將最後一行更改爲return [c autorelease];