@implementation Level
@synthesize doors, rooms;
- (id) init
{
self = [super init];
if (self != nil) {
rooms = [[NSMutableArray alloc] init];
doors = [[NSMutableArray alloc] init];
}
return self;
}
- (void)generate{
int room_count = 2;
Room *room;
for (int i=0; i<room_count; i++) {
room = [[Room alloc] init];
[room generate_Doors];
[self.rooms addObject:room];
[room release];
}
for (int i=0; i<[rooms count]; i++) {
Room *r=[rooms objectAtIndex:i];
//After this point rooms is invalid
int l=[[r doors] count];
for (int j=0; j<l; j++) {
Door *d=[[[rooms objectAtIndex:i] doors] objectAtIndex:j];
[self.doors addObject:d];
}
}
}NSMutable 배열 무효 한 후 objectAtIndex
이 내가 디버거에서 본 적이 있다는 것입니다
alt text http://img163.imageshack.us/img163/8090/20091117174111.png
디버거에서 얻은 결과를 잘못 해석했다고 생각합니다. NSLog 디버깅을 수행하여 확인하십시오. 예 : 귀하의 코멘트 아래에 다음 줄을 추가하십시오 : NSLog (@ "우리는 여전히 우리의 목록에 뭔가를 가지고 있습니다 - 개체 수 % d를 볼 수 있습니다, [객실 수]); – Till
그 점에 관해서는'NSLog (@ "첫번째 객체 : % @", [rooms objectAtIndex : 0]);'을 시도하십시오. –