2011-10-24 18 views
0

使用相同的實例我有一個小問題,當我要訪問一個類我創建了一個新的實例從多個類

Class *class = [[Class alloc] init]; 

的問題是,我不希望創建一個新的實例但使用當前的實例,我只想在兩個類之間進行通信......我如何傳遞一個值而不創建新的實例?

+1

試圖不創建對象正在違背Objective-C的面向對象的本質,並試圖「在兩個類之間進行交流」,這表明您沒有完全理解類的性質和目的。本文檔將解釋您缺少的許多內容:http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/OOP_ObjC/ –

回答

1

可以使用Singleton類來創建可以爲應用程序的生命週期訪問的共享對象,這裏有一個簡單的(雖然不是100%萬無一失)的方式來創建一個:

+ (id) sharedInstance { 
    static Foo *__sharedInstance; 
    if (nil == __sharedInstance) { 
     __sharedInstance = [[Foo alloc] init]; 
    } 
    return __sharedInstance; 
} 

更多here

+ (void) doSomething { 
    NSLog(@"This class is %@", self); 
} 
: - 「」方法名,像這樣

如果你只是想執行特定的操作,或者從類獲取信息,您可以通過使用「+」,而不是使用一個類的方法

然後,您可以簡單地調用[Class doSomething]來執行操作,而無需創建新實例。

+0

非常感謝!當我將一個變量傳遞給另一個類時,我只有另一個問題,如何才能簡單地刷新標籤? – kikko088

+0

取決於您的應用程序的設計方式,但通常您有一個由位於UI和數據類之間的「控制器類」更新的用戶界面項目。所以你可以告訴你的類更新它的值,然後控制器會讀取新的值並將它傳遞給文本字段或其他內容。綁定是自動執行此操作的更強大的方法,但這需要您進行一些閱讀。 –