정확히 NSMutableArray의 addObject 메소드가 작동합니까? 새 인스턴스를 만들고 배열에 추가합니까? 아니면 단순히 SAME 객체에 대한 참조를 배열에 추가합니까?NSMutableArray에 대한 질문, 포인터 및 릴리스
대답은 단지 객체에 대한 참조를 삽입 할 경우, 내 다음 질문으로 리드 :
것은 이제 나는 내 수업 중 하나 ('목록'입니다있는 NSMutableArray)에 다음과 같은 방법을 가지고 있다고 가정 해 봅시다, 기꺼이이 코드는 내가 원하는 방식으로 작동하지만, 난 그냥 이유를 완전히 이해하지 않는 것 :
-(void)buyItem:(Item *)anItem
{
Item * newItem = [[Item alloc]init];
newItem.name = anItem.name;
newItem.details = anItem.details;
[list addObject:newItem];
[newItem release];
}
그래서 기본적으로 호출 한 후 [목록 addObject : 인 newItem를, 지금 두 개의 기준 가리키는 총있을 것 동일한 객체 오른쪽 (newItem 및 'list'배열의 다른 객체)?
왜 NSMutableArray의 'list'에있는 newItem 객체를 제거하지 않습니까? 그들은 같은 대상을 가리키고 있지 않습니까?
아 맞아요. 지금 당장 가져 가세요! 귀하의 답변을 주셔서 감사합니다 – lucas32