2010-08-13 2 views
1

인사말 코코아 마스터 -이 간단한 문제로 인해 벽이 크롤링됩니다. 나는 Movie라는 커스텀 클래스를 가지고있다. Movie는 많은 속성과 컬렉션으로 구성되어있다. FMDB와 SQLite를 사용하여 성공적으로 채우고 있습니다. 나는 m의 출력을 NSLog'd 한 - -이 시점에서루프 내의 모든 패스에서 NSMutableArray가 덮어 쓰기됩니다.

SciFiLib = [[NSMutableArray alloc]init]; 
FMResultSet *SciFiResultSet = [db executeQuery:@"select Movie.*......]; 
Movie *m = [[Movie alloc] init]; 

while ([SciFiResultSet next]) { 
m.movieID =[SciFiResultSet stringForColumn:@"movie_id"]; 
m.title = [SciFiResultSet stringForColumn:@"title"]; 
..... 
[SciFiLib addObject: m]; 

과은을 포함하지만, 각각 내 addObject DB를,의 결과 컬렉션을 통과 : 전체 어레이에 걸쳐 쓰는 것 같다 다른 영화 (제목, 신분증, 발매일 등 - 데이터가 맞다는 것을 알기 때문에). 그러나 WHILE 루프를 통한 2 단계 통과부터 각 후속 addObject는 전체 배열을 다음 데이터 항목의 복사본으로 바꿉니다. 그래서 루프의 마지막에는 동일한 영화 데이터 6 부를 가지고 있습니다.

여기 내 맞춤 클래스를 영화 제목 배열로 미러링했는데 작동하는 것처럼 보였지만 내 모델 데이터에 대한 영화의 모든 속성을 수집하고 싶습니다. 누구든지이 문제의 원인이 될 수있는 것에 대해 밝힐 수 있습니까?

도움과 조언에 미리 감사드립니다.

...

답변

5

나는 그냥 포인터를 추가 한 다음 동일한 개체 "m"에 데이터를 다시 적용하고 있기 때문에 생각합니다. 루프 안쪽에 "m"을 만들어 놓으면 매번 다시 만들어집니다.

+0

빙고. 너는 문상을 얻는다. 놀랄만 한 응답 시간 BTW. 고마워 톤 - 아니 심각하게, 미터 톤. – adickers

+1

답안을 수락하십시오. D 수표를 클릭하십시오. – UltimateBrent

관련 문제