我有一个单例初始化器,它是一个类方法。我想从中设置实例变量数据。我怎么能这样做?
答案 0 :(得分:3)
可以使用结构指针运算符访问实例变量 您不需要属性:
+ ( MyClass * )sharedInstance
{
@synchronized( self )
{
if( instance == nil )
{
instance = [ [ self alloc ] init ];
instance->iVar = @"someValue";
}
}
return instance;
}
答案 1 :(得分:0)
您需要一个实例来调用实例方法。因此,要么创建实例并调用其方法,要么使用类方法。
我应该更改这些实例方法吗? 是班级方法吗?
如果方法与实例无关,那么将它们更改为类方法可能是个好主意。
答案 2 :(得分:0)
此init方法示例。这就是我这样做的方式......
-(id)initWithName:(NSString *)name {
if(self = [super init]) {
self.name = name;
}
return self;
}
在这种情况下,实例变量也需要是一个属性。否则你不能写self.name
。
桑德罗
答案 3 :(得分:0)
比我不知道你的意思。要设置实例变量吗?那是可能的。 (参见下面的例子)但是如果你想访问一个,那是不可能的。因为他们在课堂上不存在。它们只存在于一个物体中...... 例如:
+(YourClass *)YourClassWithName:(NSString *)name {
if(self = [super init]) {
self.name = name;
}
return [self autorelease];
}
如果你不是那个意思,我不知道你的意思。 ^^