表视图上的清单不起作用

时间:2011-07-14 20:48:22

标签: iphone xcode4 uitableview

我有一个表格查看当添加单元格时,它不会像应用程序中已有的单元格一样工作。当我按下新单元格时,我的程序崩溃,我收到此错误: " SIGABRT"

这是我按下单元格时的代码:

- (void)tableView:(UITableView *)tableView 
  didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{

    [tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:YES];
    [self setCurrentChosenFund: [self.cells objectAtIndex:indexPath.row]];

    [self setSelectedCell: [tableView cellForRowAtIndexPath:indexPath]];

    if  ([self.currentChosenFund valueForKey:@"Selected"] == [NSNumber 
    numberWithBool:YES])

    {
        //selectedCell.imageView.image = [UIImage imageNamed:@"checklist.png"];
        [self.selectedCell setAccessoryType: UITableViewCellAccessoryNone];
        [self.currentChosenFund setObject:[NSNumber numberWithBool:NO] 
     forKey:@"Selected"]; // ERROR IS ON THIS LINE :(
    }

    else

    {          
        //selectedCell.imageView.image = nil;  
        [self.selectedCell setAccessoryType: UITableViewCellAccessoryCheckmark];
        [self.currentChosenFund setObject:[NSNumber numberWithBool:YES] 
     forKey:@"Selected"];
    }

    [[NSUserDefaults standardUserDefaults] setObject:self.cells forKey:@"funds"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

有谁知道如何解决这个问题?

save:方法的代码是:

- (IBAction)saveButton:(id)sender {
NSLog(@"%@", textField.text);
CheckListPracticeViewController * obj = (CheckListPracticeViewController     
         *)self.parentViewController;
[obj.cells insertObject:[NSDictionary dictionaryWithObject:textField.text      
forKey:@"name"] atIndex:0]; 

// [obj.cells insertObject:textField.text atIndex:0];
[self dismissModalViewControllerAnimated:YES];

}

好的,所以我将这行代码添加到我的saveButton:method:

    [self.currentChosenFund setObject:[NSNumber numberWithBool:NO]    
             forKey:@"Selected"];

我仍然让应用程序崩溃!我已经尝试将此设置为YES和NO,但它不起作用。

1 个答案:

答案 0 :(得分:1)

这更像是一个评论而不是答案,尽管它可能会变成两者。使用BOOL作为密钥Selected更为合乎逻辑。

或者,您可以使用

if ([[self.currentChosenFund valueForKey:@"Selected"] boolValue]) {
}

避免比较。

编辑:根据评论,我认为问题出在你的saveButton方法上。您没有为“已选择”键设置对象,因此当您去检索它时,会出现错误。要解决此问题,请在此方法中将默认值设置为某个值。