我對Objective C非常陌生,並且偶然發現了這個問題。 如何在Objective C中創建一個可從多個類和主函數訪問的類的全局實例?如何在Objective-C中創建類的全局實例C
0
A
回答
1
向你的類添加一個返回這個特定實例的方法。
最常見的情況是單身人士。你也可以查看「共享實例」。
1
你能做到這樣:
+(MyClass *) sharedInstance
{
static id sharedInstance = nil;
@synchronized(self)
{
if (!sharedInstance)
{
sharedInstance = [[MyClass alloc] init];
}
return sharedInstance;
}
}
通過這一行代碼就訪問對象:
[MyClass sharedInstance]
希望它可以幫助!快樂編碼:)
-1
您可以使用單,導入.h文件在你的.PCH文件,通過這樣做,每個文件都會有這樣的輸入:
YourClass.h:
@interface YourClass : NSObject
/**
* Method to get the singleton instance
* @return Instance of YourClass
*/
+ (YourClass *)instance;
@end
YourClass的.m:目標c - 全局變量]的
#import "YourClass.h"
@interface YourClass(){
}
@end
#pragma mark -
@implementation YourClass
- (id)init{
//prevents normal inits
return nil;
}
+ (YourClass *)instance
{
static YourClass *instance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[self alloc] initSingelton];
});
return instance;
}
- (id)initSingelton{
if (self = [super init]) {
//do stuff here
return self;
}
return nil;
}
+0
爲什麼選擇投票? –
相關問題
- 1. 在C++中創建多個全局靜態實例?
- 2. 如何在PHP擴展中實例化一個全局C++類?
- 3. 全局創建對象實例
- 4. 類的全局實例
- 5. 如何訪問全局類實例?
- 6. 如何使全局在C#中實現一個實例?
- 7. 的ObjectiveC,創建類的
- 8. 靜態創建的全局類實例,帶參數
- 9. 創建一個全局類的objective-c?
- 10. 如何在C++中只創建一個實例的類
- 11. 如何在C++中創建一個類的多個實例
- 12. 目標C中的類的全局實例C
- 13. Java;全局類實例?
- 14. 如何創建類的實例並在子類中實現它?
- 15. 使用全局變量()創建類實例
- 16. 如何在Nemerle中創建.NET 4 C#類實例?
- 17. C++&OpenGl:如何在類中創建網格對象實例
- 18. 如何在c#中爲通用類型創建實例#
- 19. 如何用MBUnit和C#創建全局testfixturesetup例程?
- 20. 如何從該類的實例創建類的實例?
- 21. 如何從超類的實例創建子類的實例?
- 22. 在Objective-C中,如何創建一個全局可訪問的全局配置?
- 23. 如何在Hadoop MapReduce的Java實現中創建全局變量?
- 24. 在Objective C中創建全局變量
- 25. 在asp.net中創建全局變量C#
- 26. 在Objective C中創建單例類的另一個實例
- 27. 在全局級別實例化(C++)
- 28. 如何在運行時使用c#創建類的新實例?
- 29. 如何創建一個類的全局常量 - C++
- 30. 如何在javascript中創建全局cookie?
可能重複(http://stackoverflow.com/questions/8808159/objective-c-global-variables) – edtheprogrammerguy
重複的http://計算器。 COM /問題/ 8808159/OBJ ective-c-global-variables – edtheprogrammerguy
@dasblinkenlight表明其中一個不是線程安全的。目前推薦的方法是使用'dispatch_once',否則你可以使用'@ synchronized'。見http://www.galloway.me.uk/tutorials/singleton-classes/ – jcaron