是否可以访问object的成员变量

时间:2010-12-04 02:43:04

标签: iphone

我从NSObject创建了一个子类AOBject

@interface AObject : NSObject {
    NSinteger m;
    NSInteger n;
}


-(void) setM:(NSInteger)v ;
 -(NSInteger ) getM ;
-(void) setN:(NSInteger)v ;
 -(NSInteger ) getN ; 

要访问m,n,我可以使用[myAObject getM]或[myAObject getN]

是否可以使用标签或任何其他方式访问m,n我可以访问队列中对象的所有成员变量?

欢迎任何评论。

由于

InterDev中

1 个答案:

答案 0 :(得分:2)

您无法使用标记或任何内容访问整数;你必须经历你所做的制定者和吸气剂。

如果要访问每个成员变量,可以使用NSNumber而不是NSInteger,并显式创建一个数组来保存这些值。为此,声明一个localVariables数组,并在构造函数中初始化它,如下所示:

-(id) init {
    if (self = [super init]) {

        // initialize and set values for m and n
        NSArray *array = [[NSArray alloc] initWithObjects:self.m, self.n, nil];
        self.localVariables = array;
        [array release];
    }
    return self;
} 

然后你可以通过迭代来访问所有局部变量。

顺便说一下,你可以通过添加

来处理setter和getter
@property NSInteger m;
@property NSInteger n;

到你的头文件,

@synthesize m,n;

到您的实施文件。