我有一個單例初始值設定項,它是一個類方法。我想從它設置實例變量數據。我怎樣才能做到這一點?如何從ObjC中的類方法設置實例變量
0
A
回答
2
可以使用結構指針運算符訪問實例變量。
您不需要屬性:
+ (MyClass *)sharedInstance
{
@synchronized(self)
{
if(instance == nil)
{
instance = [ [ self alloc ] init ];
instance->iVar = @"someValue";
}
}
return instance;
}
0
您需要一個實例來調用實例方法。所以,要麼創建一個實例並調用它的方法,要麼使用類方法。
我應該將那些實例方法 更改爲類方法嗎?
如果這些方法與實例無關,將它們更改爲類方法可能是一個好主意。
0
此init方法爲例。這是我的方式...
-(id)initWithName:(NSString *)name {
if(self = [super init]) {
self.name = name;
}
return self;
}
在這種情況下,實例變量還需要是一個屬性。否則你不能寫self.name
。
Sandro
+0
Groovy,但你的方法是一個實例方法「 - 」,我試圖從類方法「+」訪問實例變量。 – Spanky 2010-07-14 10:26:40
0
比我不知道你的意思。你想設置一個實例變量?這是可能的。 (見下面的例子)但是如果你想訪問它,這是不可能的。因爲他們不存在於課堂上。它們只存在於一個對象... 例子:
+(YourClass *)YourClassWithName:(NSString *)name {
if(self = [super init]) {
self.name = name;
}
return [self autorelease];
}
如果你不是那個意思,我不知道你是什麼意思。 ^^
相關問題
- 1. Ruby:如何從類方法設置實例變量?
- 2. 如何從類方法設置實例變量?
- 3. 如何從NSMutableArray設置實例變量?
- 4. Ruby - 從字符串中設置類方法中的實例變量
- 5. 類方法中的實例變量
- 6. XCODE AppelScript ObjC:設置變量
- 7. 如何在包含模塊的類中設置實例變量
- 8. 我知道如何設置類方法,但是如何設置實例方法?
- 9. 如何從方法內部設置實例變量並設置變量名稱與其值相同
- 10. Rails:將變量從類方法傳遞到實例方法
- 11. copyWithZone設置實例變量?
- 12. 如何在調用方法中設置變量 - 例如[... {here}]
- 13. Python:從類實例中訪問變量的最佳方法?
- 14. 如何設置方法測試中使用的私有實例變量?
- 15. 瞭解類和實例方法變量
- 16. Ruby - 類實例變量getter setter方法
- 17. Coffeescript類,方法和實例變量
- 18. 實例方法無法讀取類實例變量
- 19. 設置與方法參數同名的實例變量?
- 20. 從方法實例訪問此變量
- 21. 從方法訪問實例變量
- 22. Pthread實例變量從類
- 23. 如何從同一級別的實例方法調用的實例方法內訪問實例變量
- 24. 在ObjC實現文件中聲明的實例變量
- 25. rails何時設置實例變量|| =
- 26. 從另一個類從靜態方法訪問實例變量
- 27. 類實例中的方法不改變變量?
- 28. Pharo 4.0中的類和實例變量和方法的語法
- 29. 從PHP中的變量實例化類?
- 30. 如何在ObjC中訪問自定義類的實例方法(iOS編程)
這工作,謝謝:) – Spanky 2010-07-14 18:28:36