我对Objective C很新,偶然发现了这个问题。 如何在Objective C中创建一个可以从多个类和主函数访问的类的全局实例?
答案 0 :(得分:2)
你可以这样做:
+(MyClass *) sharedInstance
{
static id sharedInstance = nil;
@synchronized(self)
{
if (!sharedInstance)
{
sharedInstance = [[MyClass alloc] init];
}
return sharedInstance;
}
}
只需通过以下一行代码访问对象:
[MyClass sharedInstance]
希望它有所帮助!!快乐编码:)
答案 1 :(得分:1)
向您的类添加一个返回此特定实例的方法。
最常见的情况是单身人士。您还可以查找"共享实例"。
答案 2 :(得分:-1)
您可以使用单例,导入.pch文件中的.h文件,方法是将每个文件导入:
YourClass.h:
@interface YourClass : NSObject
/**
* Method to get the singleton instance
* @return Instance of YourClass
*/
+ (YourClass *)instance;
@end
YourClass.m:
#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;
}