0

チェックされている/チェックされていないテーブルビューセルを保存およびロードする方法がわかりません。今のところ、私のコードはチェックされたセルに対してのみ機能しますが、チェックマークを外すと、すべてのオブジェクトが配列から削除されましたが、チェックされていないオブジェクトのみを削除したいと考えています。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    bool isSelected = (cell.accessoryType == UITableViewCellAccessoryCheckmark);
    cell.accessoryType = isSelected ? UITableViewCellAccessoryNone : UITableViewCellAccessoryCheckmark;

    //loading my whole plist to overwrite it then
    NSString *path = [DOCUMENTS stringByAppendingPathComponent:@"userData.plist"];
    NSMutableDictionary *data = [NSMutableDictionary dictionaryWithContentsOfFile:path];

    //loading fragment of plist with personal qualities which I want to check / uncheck in my tableview
    NSMutableArray *oldData = data[@"myObjects"];

    //new array to overwrite the old
    NSMutableArray *newData=[[NSMutableArray alloc] init];

    if (isSelected) {
        [newData removeObject:cell.textLabel.text]; //don't know  where I should paste the code for removing object, this line no matter doesn't works
    } else {
        [newData addObjectsFromArray:oldData];
        [newData addObject:cell.textLabel.text];
    }

    [data setObject:newData forKey:@"myObjects"];
    NSData *dataToPlist = [NSPropertyListSerialization dataWithPropertyList:data
                                                                     format:NSPropertyListXMLFormat_v1_0
                                                                    options:0
                                                                      error:nil];
    [dataToPlist writeToFile:path atomically:YES];
}

私のリスト 私のテーブルビュー

4

1 に答える 1

2

これを試して:

 //new array to overwrite the old
NSMutableArray *newData=[[NSMutableArray alloc] initWithArray:oldData];

if (isSelected) {
    [newData removeObject:cell.textLabel.text]; //don't know  where I should paste the code for removing object, this line no matter doesn't works
} else {
    [newData addObject:cell.textLabel.text];
}
于 2013-11-08T13:16:48.697 に答える