저는 Parse를 사용하고 있으며 등급이 정해져있는 직업이 몇 개 있습니다 (5 점 만점). 클래스를 쿼리하고 각 등급을 배열에 집어 넣은 다음 평균을 계산하고 싶습니다. 그러나 배열에 개체를 추가하려고하면 쿼리에서 반환 한 마지막 항목 만 추가하는 것처럼 보입니다. 이유를 파악할 수 없습니다. 왜이 배열에 각 항목을 추가 할 수 없습니까?
- (void)viewDidLoad {
[super viewDidLoad];
self.jobName = [self.job objectForKey:@"jobTitle"]; //jobName string
self.title = [NSString stringWithFormat:@"%@", self.jobName];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
PFQuery *getCompletedJobsQuery = [PFQuery queryWithClassName:@"completedJobs"];
[getCompletedJobsQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
self.completedJobs = objects;
for (PFObject *completedJob in objects) {
self.ratingsArray = [[NSMutableArray alloc] init];
NSLog(@"RATING: %@", [completedJob objectForKey:@"customerRating"]);
[self.ratingsArray addObject:[completedJob objectForKey:@"customerRating"]];
}
NSLog(@"ratings array ... %@", self.ratingsArray);
[self.tableView reloadData];
} else {
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];
}
가 실행
는, 각 평가를 기록,하지만 난 배열을 인쇄하거나 길이를 확인하려고 할 때, 그것은 마지막 객체를 표시하고 다른 개체에 포함되지 않습니다2015-01-05 13:05:00.274 Ribbit[15538:251863] RATING: 3
2015-01-05 13:05:00.274 Ribbit[15538:251863] RATING: 5
2015-01-05 13:05:00.274 Ribbit[15538:251863] RATING: 4
2015-01-05 13:05:00.274 Ribbit[15538:251863] RATING: 5
2015-01-05 13:05:00.275 Ribbit[15538:251863] ratings array ... (
5
)
을
파스에서 물건을 가져 와서 배열에 넣는 적절한 방법은 무엇입니까?
편집 : oltman과 Jack이 지적했듯이, 루프가 실행될 때마다 배열을 다시 만들고 있으므로 배열 생성을 루프 외부로 옮기면 문제가 해결됩니다. 그것은 또한 몇 시간 동안 코딩을 중단하고 부끄러운 큐브에 앉기위한 나의 대기열입니다. 감사!
적합합니다. 나는이 문제를 일으킬 수있는 것이 무엇인지 궁금해하고 싶습니다. – kevingduck