我已经实现了以下代码来将NSMutableArray分配给属性 -
NSMutableArray * anArray = [responseDictionary valueForKeyPath:@"tags"];
NSLog(@"The array length is=%d",[anArray count]);
for (NSString *s in anArray) {
NSLog(@"you are %@", s);
}
[self setActiveTagArray:anArray];
打印出字符串值很好。但是在setter函数中,如果我放置一个断点,我看到它显示有两个对象,但它们是“超出范围”。这是什么意思?我究竟做错了什么?我的getter也没有获取任何值。属性函数 -
-(void)setActiveTagArray:(NSMutableArray *)tags
{
activeTagArray = [[NSMutableArray alloc] init];
activeTagArray = tags;
//NSLog(@"%@",[activeTagArray count]);
}
-(NSMutableArray *)getActiveTagArray
{
return activeTagArray;
}
答案 0 :(得分:0)
activeTagArray是一个类变量以及一个属性。考虑使用_activeTagArray作为类变量名。然后在.m文件中使用@synthesize activeTagArray = _activeTagArray;
,并完全获得后两种方法。
对评论的回应:
你说“我已经实现了以下代码来将NSMutableArray分配给一个属性”。我认为这意味着你的.h文件中有“@property (nonatomic, retain) NSMutableArray *activeTagArray;
”。如果是这种情况,那么您将通过otherObject'sNameForYourClassHere.activeTagArray
访问它。
@synthesize创建访问者&为你改变。