如何在另一个类中访问实例变量

时间:2013-04-03 07:25:04

标签: objective-c instance-variables

我在class1中有实例变量来保存整数值(tableview中的单元格数),我想在另一个类中使用这个变量(例如class2)但我不知道使用了哪种语法???

4 个答案:

答案 0 :(得分:0)

«如果可能的话使用成员变量。

@interface MyClass : NSObject  
{
    int score;
}
@property (nonatomic, assign) int score;
@end

@implementation MyClass
@synthesize score;
@end

//access
MyClass *object = [MyClass alloc] init];
object.score = 99;

«你也可以使用NSUserDefault

// Snippet used to save your highscore in the prefs.
int highScore  = yourGameScore;
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:highScore] forKey:@"HighScore"];
[[NSUserDefaults standardUserDefaults] synchronize];


// Snippet used to get your highscore from the prefs.
highScore = [[[NSUserDefaults standardUserDefaults] objectForKey:@"HighScore"] intValue ];

答案 1 :(得分:0)

你可以这样做:

例如:您希望将字符串从Class1传递到Class2

首先在Class2中创建String,并将其定义为Class2.h中的属性:

NSString *classTwoString;
@property (nonatomic, retain) NSString *classTwoString;

Class2.m

@synthesize classTwoString;

然后,例如,您想要在触摸Class1中的按钮时传递字符串。在其操作(创建IBAction,将其与按钮的touchesUpInside链接)中,您可以将其设置为获取第二个类的实例,例如:

Class2 *class2 = [[Class2 alloc] init];    
class2.classTwoString= classOneString;

我建议采用上述方法。

使用NSUserDefaults - 如果应用程序崩溃,可能会丢失存储的值。

答案 2 :(得分:-1)

您可能想要使用属性。这是一个例子:

Class1.h

@property int myValue

Class1.m

self.myValue = 2

Class2.m

int v = instanceOfClass1.myValue

以下是有关使用属性的教程的链接:http://www.raywenderlich.com/2712/using-properties-in-objective-c-tutorial

答案 3 :(得分:-1)

@implementation classA {
    int v;
}

id x = [[classA alloc] init];
x->v = 123;

用Google搜索“目标c实例变量”并找到了这篇文章。 http://blog.ablepear.com/2010/04/objective-c-tuesdays-instance-variables.html