该应用程序将运行良好,然后崩溃 - 几乎每隔一次。似乎崩溃清理了内存,而干净的运行破坏了内存。
我认为它与内存分配有关,但我不确定。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *MyIdentifier = @"MyStateCell";
static NSString *MyNib = @"StateCell";
StateCell *cell = (StateCell *)[tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil) {
UIViewController *c = [[UIViewController alloc] initWithNibName:MyNib bundle:nil];
cell = (StateCell *)c.view;
[c autorelease];
}
// Configure the cell.
NSString *cellAnswerName = [[NSString alloc] initWithFormat:@""];
cellAnswerName = [theQuizArray objectAtIndex:indexPath.row];
int theStatusCode = [[theResultArray objectAtIndex:indexPath.row] intValue];
NSString *statusString;
NSString *pointsWon;
if(theStatusCode == 0){
statusString = [NSString stringWithFormat:@""];
pointsWon = [NSString stringWithFormat:@""];
}else if( theStatusCode == 12){
statusString = [NSString stringWithFormat:@"Wrong"];
pointsWon = [NSString stringWithFormat:@"0"];
}else if(theStatusCode == 11){
statusString = [NSString stringWithFormat:@"Out of time"];
pointsWon = [NSString stringWithFormat:@"0"];
}else{
int elapsedTime = 10 - theStatusCode;
int pointsWonInt = 10 * theStatusCode;
pointsWon = [NSString stringWithFormat:@"%i", pointsWonInt];
if(elapsedTime == 1){
statusString = [NSString stringWithFormat:@"%i second", elapsedTime];
}else{
statusString = [NSString stringWithFormat:@"%i seconds", elapsedTime];
}
}
NSString *imagePath = [[@"State_" stringByAppendingString:cellAnswerName] stringByAppendingString:@".png"];
UIImage *image = [UIImage imageNamed:imagePath];
[[cell stateImage] setImage:image];
[[cell stateName] setText:cellAnswerName];
[[cell stateResult] setText:statusString];
[[cell statePoints] setText:pointsWon];
if([statusString isEqualToString:@"Wrong"])
[[cell stateResult] setTextColor:[UIColor redColor]];
return cell;
}