속성에 NSMutableArray를 할당하기 위해 다음 코드를 구현했습니다. -iOS - 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;
}
어디에서 중단 점을 배치합니까? setter에서 새 배열을 할당하고 초기화 할 필요가 없습니다. **를 지정하고 ** 새 참조를 보유합니다. 또한 이전 버전을 ** 릴리스해야합니다. –
@ user971401,이 코드가 ARC 아래에 있다면 'release'를 사용하면 안됩니다. "범위를 벗어났습니다"라는 말은 디버거 메시지입니다. 'NSLog' setter에서 두 번째 배열을보십시오. – beryllium
@ 베릴륨 - 나는 당신에게 대단히 감사하다고 쓰지 않았다. –