2011-07-25 32 views
0

在Class1中,我有一個名爲「cDte1」的變量。我想從Class2中設置它。設置另一個類的var

Class1.h:

@interface Class1 : UIViewController { 

    NSString *cDte1; 

} 

@property (readwrite,assign) NSString *cDte1; 

@end 

在Class2.m我進口Class1.h

那麼我想這從Class2中

Class1.cDte1 = @"test"; 

,但不起作用。我做錯了什麼?

編輯,更多信息。如果我需要設置var,然後顯示視圖,下面的代碼不起作用,因爲我認爲這個類有兩個不同的實例?

Class1 *obj = [[Class1 alloc] init]; 

Class1 *myView = [[Class1 alloc] initWithNibName:@"Class1" bundle:[NSBundle mainBundle]]; 

obj.cDte1 = @"7/25/2011"; 


[self presentModalViewController:myView animated:YES]; 


[myView release]; 


[obj release]; 

回答

1

你的類,不實例集成員變量。

所以,你可以這樣做:

Class1 obj = [[Class1 alloc] init]; 
obj.cDte1 = @"test"; 

編輯:在你的榜樣,嘗試:

Class1 *myView = [[Class1 alloc] initWithNibName:@"Class1" bundle:[NSBundle mainBundle]]; 
myView.cDte1 = @"7/25/2011"; 
[self presentModalViewController:myView animated:YES]; 
[myView release]; 
+0

好吧,這是有道理的...我需要設置變量,然後打開該類,並使用presentModalViewController顯示它。這些不是這個班的兩個不同的例子嗎? –

+0

請參閱上面的更多評論 –

+0

更新後... – yan

1

你需要調用它的類,而不是類本身的實例。例如:

Class1 *instance = [[Class1 alloc] init]; 
instance.cDte1 = @"test"; 
+0

請參閱上面的其他評論 –

0

從Class1創建一個對象,然後嘗試訪問它。

您無法使用類名訪問屬性。

如何

Class1 *object1 = [[Class1 alloc] init]; 
object1.cDte1 = @"Test"; 
+0

請參閱上面的額外評論 –

0
Class1 *viewController = [[Class1 alloc] initWithNibName:@"Class1" bundle:[NSBundle mainBundle]]; 
viewController.cDte1 = @"7/25/2011"; 

[self presentModalViewController:viewController animated:YES]; 

[viewController release]; 

這應該工作,如果你的ViewController想推是1類的一個實例。確保有一個相應的InterfaceBuilder文件(Class1.xib)。
如果您手動創建視圖(沒有IB,沒有.xib),請不要撥打initWithNibName:bundle:,而只需撥打init

+0

請參閱上面的額外評論 –

+0

更新我的答案 –

+0

謝謝你做到了,它的工作原理! –