2012-01-04 23 views
2

中將值分配給其他類變量以下代碼正在工作,我可以在第二個屏幕中看到這些值。但是我在這種格式的其他類中使用不同的變量。但是,如果在輸入點名後輸入變量,就會顯示變量。我無法弄清楚這一點。有什麼方法可以將值傳遞給其他類。如何在Objective-c

 InstallProfiler_2 *installProfiler2 = [[InstallProfiler_2 alloc] initWithNibName:@"InstallProfiler_2" bundle:nil]; 

     installProfiler2.profilerType2 = profilerType; 

     [self.navigationController pushViewController:installProfiler2 animated:NO]; 
     [installProfiler2 release]; 
+1

你能給我們什麼不工作,而不是什麼工作嗎? – KIDdAe 2012-01-04 15:55:33

回答

0

點語法只適用於財產/合成

+0

是的,我用了財產,也合成。但它仍然不行。 – dinesh 2012-01-04 15:28:52

+0

您是否正確導入了所需的文件?不僅像'@class Toto'一樣使用前向聲明? – KIDdAe 2012-01-04 15:32:43

+0

是的,我輸入正確。 – dinesh 2012-01-04 15:53:46

0

創建一個定製的setter /吸氣:

+ (BOOL)awesomeClassVar { 
    return _classVar; 
} 

+ (void)setAwesomeClassVar:(BOOL)newVar { 
    _classVar = newVar; 
} 

然後調用從其他類中的方法:

BOOL theOtherClassVar = [AwesomeClass awesomeClassVar]; 
[AwesomeClass setAwesomeClassVar:!theOtherClassVar]; 
+0

謝謝。但是,請你詳細解釋一下嗎?我有變量在A類中保存一個名稱。我正在設置該類中的值。現在我正在導航到CLASS B.這裏我需要訪問在A類中設置的值。 – dinesh 2012-01-04 15:35:22

+0

這兩種方法進入CLASS A.最下面兩行訪問CLASS B的變量。 – coneybeare 2012-01-04 15:42:49

2

請確保:

  • 您已導入類標題。
  • @property聲明位於此標頭中,而不是類擴展名。

@property指的ivars所以當你說

如果以後我有一個點

這個術語是不正確鍵入類名,你可能你開始輸入名稱後的平均指向一個類的實例的變量。

ClassA.h

@interface ClassA : NSObject 

@property (nonatomic, weak) NSInteger myInt; 

@end 

ClassA.m

@implementation ClassA 

@synthesize myInt = _myInt; 

@end 

ClassB.m

#import "ClassA.h" // <- Import the header of the class 

@ implementation ClassB 

// .. other methods and stuff 

- (void)myMethod; 
{ 
    ClassA *instanceOfClassA = [[ClassA alloc] init]; // <- Working with an instance not a class 
    instanceOfClassA.myInt = 1; 
} 

@end 

UPDATE

確保您的@property()在圓括號之間沒有readonly。 此外,請確保您在執行中擁有@synthesize'ivar,或者爲伊娃提供了吸氣劑和吸氣劑。

未能顯示相關的代碼,所以我們可以看到你在做什麼 - 我們在這裏盲目地回答。

+0

他詢問的是類變量,而不是實例變量。 – coneybeare 2012-01-04 15:43:39

+0

@coneybeare我不太確定我認爲這可能只是這個問題的糟糕措詞。如果你看看他所說的例子,他說他在課堂上成功地使用了點符號,我認爲點符號只適用於實例? – 2012-01-04 15:46:17

+0

謝謝,但我得到這個錯誤。 對象無法設置爲只讀屬性或未找到設置符 – dinesh 2012-01-04 15:51:43