使用相同的實例我有一個小問題,當我要訪問一個類我創建了一個新的實例從多個類
Class *class = [[Class alloc] init];
的問題是,我不希望創建一個新的實例但使用當前的實例,我只想在兩個類之間進行通信......我如何傳遞一個值而不創建新的實例?
使用相同的實例我有一個小問題,當我要訪問一個類我創建了一個新的實例從多個類
Class *class = [[Class alloc] init];
的問題是,我不希望創建一個新的實例但使用當前的實例,我只想在兩個類之間進行通信......我如何傳遞一個值而不創建新的實例?
可以使用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]來執行操作,而無需創建新實例。
非常感謝!當我將一個變量傳遞給另一個類時,我只有另一個問題,如何才能簡單地刷新標籤? – kikko088
取決於您的應用程序的設計方式,但通常您有一個由位於UI和數據類之間的「控制器類」更新的用戶界面項目。所以你可以告訴你的類更新它的值,然後控制器會讀取新的值並將它傳遞給文本字段或其他內容。綁定是自動執行此操作的更強大的方法,但這需要您進行一些閱讀。 –
試圖不創建對象正在違背Objective-C的面向對象的本質,並試圖「在兩個類之間進行交流」,這表明您沒有完全理解類的性質和目的。本文檔將解釋您缺少的許多內容:http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/OOP_ObjC/ –