我正在使用的这个类有三个我感兴趣的实例变量,NSmutablearrays xArray yArray和zArray,还有其他NSmutablearrays,a,bArray和c。 我刚刚添加了访问者
- (NSMutableArray *) xArray {
return xArray;
}
同样适用于y和z。 但是,由于某种原因,它正在返回yArray,zArray和bArray。 为什么会这样?
好的,我只是将方法的名称更改为GetXArray,所有内容似乎都返回了正确的变量。现在我真的很困惑。这是怎么回事?我如何防止将来发生这种情况?
答案 0 :(得分:0)
这是相当简单的设置/获取内容:
<强> XYZArray.h 强>
#import <Cocoa/Cocoa.h>
@interface XYZArray : NSObject {
NSMutableArray *x;
NSMutableArray *y;
NSMutableArray *z;
}
-(NSMutableArray*) x;
-(NSMutableArray*) y;
-(NSMutableArray*) z;
-(void) setX:(NSMutableArray*)newArray;
-(void) setY:(NSMutableArray*)newArray;
-(void) setZ:(NSMutableArray*)newArray;
@end
<强> XYZArray.m 强>
#import "XYZArray.h"
@implementation XYZArray
- (id)init
{
if((self = [super init]))
{
x = [[NSMutableArray alloc] init];
y = [[NSMutableArray alloc] init];
z = [[NSMutableArray alloc] init];
}
return self;
}
- (void) dealloc
{
[x release];
[y release];
[z release];
[super dealloc];
}
-(NSMutableArray*) x
{
return x;
}
-(NSMutableArray*) y
{
return y;
}
-(NSMutableArray*) z
{
return z;
}
-(void) setX:(NSMutableArray*)newArray
{
[newArray retain];
[x release];
x = newArray;
}
-(void) setY:(NSMutableArray*)newArray
{
[newArray retain];
[y release];
y = newArray;
}
-(void) setZ:(NSMutableArray*)newArray
{
[newArray retain];
[z release];
z = newArray;
}
@end
更好的是,如果您使用的是Objective-C 2.0,您可以使用属性执行所有这些操作,而不是编写任何代码。请阅读此内容,了解http://macdevelopertips.com/objective-c/objective-c-properties-setters-and-dot-syntax.html。