2012-02-23 261 views
0

我在class2中有需要在class2中使用的整數。我在class2的.m文件中爲class1導入了.h文件,但仍然無法訪問該變量。不知道爲什麼! :(在另一個類中訪問變量

我甚至創造了在Class 1的.h文件中的每個整數屬性,並在.m文件合成它。

任何人都知道是什麼問題?

基本上,這是什麼我在class1.h

//interface here 
{ 
    NSInteger row; 
    NSInteger section; 
} 

@property NSInteger row; 
@property NSInteger section; 

,這是類class1 .m文件。

//implementation 
@synthesize section = _section; 
@synthesize row = _row; 

然後在class2實施,我有這個

#import "Class2.h" 
#import "Class1.h" 

如何訪問這些整數的方法2類?

+1

你想要Class1 * aClass1Var = [[Class1 alloc] init]; aClass1Var.intVal1 = 0;或者只是Class1.intVal1 = 0; ? – 2012-02-23 23:12:47

+0

在Class1.h之前@end添加以下行:@property int myInt;'然後在Class1.m之後@implementation添加'@synthesize myInt;'或者發佈您的代碼 – 0xDE4E15B 2012-02-23 23:14:17

+0

我編輯了我的問題以包含代碼 – Hauwa 2012-02-23 23:30:39

回答

5

您需要創建一個class1的實例(對象)以便能夠訪問屬性(變量)。

// Create an instance of Class1 
Class1 *class1Instance = [[Class1 alloc] init]; 

// Now, you can access properties to write 
class1Instance.intProperty = 5; 
class1Instance.StringProperty = @"Hello world!"; 

// and to read 
int value1 = class1Instance.intProperty; 
String *value2 = class1Instance.StringProperty; 

編輯

// Create an instance of Class1 
Class1 *class1Instance = [[Class1 alloc] init]; 

// Now, you can access properties to write 
class1Instance.row = 5; 
class1Instance.section = 10; 

// and to read 
NSInteger rowValue = class1Instance.row; 
NSInteger sectionValue = class1Instance.section; 
+0

你能告訴我該怎麼做嗎? – Hauwa 2012-02-23 23:15:21

+0

耶!試過了!有用!謝謝! :D – Hauwa 2012-02-24 00:07:06

+2

如果這個答案適合你,你應該檢查(勾)它以獎勵@sch – zenopolis 2012-02-24 08:24:38

0

我共享了類似的問題的答案(看看How can I access variables from another class?)。不過,我可以在這裏重複一遍。

在「XCode」中,您需要進行導入,通過將其聲明爲屬性來創建對象,然後使用「object.variable」語法。文件「Class2.m」將看起來以下列方式:

#import Class2.h 
#import Class1.h; 

@interface Class2() 
... 
@property (nonatomic, strong) Class1 *class1; 
... 
@end 

@implementation Class2 

//accessing the variable from balloon.h 
...class1.variableFromClass1...; 

... 
@end 
相關問題