核心数据 - 保存选定的tableview行

时间:2014-05-04 10:33:00

标签: uitableview core-data ios7

我是iOS编程的新手,所以请原谅我的无能。

我正在尝试找到一个解决方案来保存tableview中的选定行,这些行从Songlist实体获取数据,该实体包含所有歌曲名称并且没有关系 - 指向另一个名为Song的实体。

我搜索了这个网站并谷歌并尝试了很多我发现的东西,但我仍然无法自己解决这个问题。

我设法将歌曲保存到Song实体,但此刻的问题是用户选择单元格时保存的歌曲 - 但是当用户按下保存按钮时我想保存选定的行。

宋实体有你可能看到的关系 - 它叫做songConcert。

SongList实体有2个属性:songName和albumName; 歌曲实体有3个属性:songName,albumName和relationship songsConcert(to Concert entity)

以下是我的SongsTableViewController中用户选择行的代码:

- (void)tableView:(UITableView *)theTableView didSelectRowAtIndexPath:(NSIndexPath *)newIndexPath {

[theTableView deselectRowAtIndexPath:[theTableView indexPathForSelectedRow] animated:NO];

UITableViewCell *cell = [theTableView cellForRowAtIndexPath:newIndexPath];

if (cell.accessoryType == UITableViewCellAccessoryNone) {
    cell.accessoryType = UITableViewCellAccessoryCheckmark;



    // Reflect selection in data model

    Song *newSong = [NSEntityDescription insertNewObjectForEntityForName:@"Song" inManagedObjectContext:[self managedObjectContext]];
    addSong = newSong;
    newSong.songName = cell.textLabel.text;
    newSong.albumName = cell.detailTextLabel.text;
    addSong.songConcert = songsConcert;


} else if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
    cell.accessoryType = UITableViewCellAccessoryNone;
    // Reflect deselection in data model

}

}

- (IBAction)save:(UIBarButtonItem *)sender {



   NSError *error = nil;
if ([self.managedObjectContext hasChanges]) {
    if (![self.managedObjectContext save:&error]) { //save failed
        NSLog(@"Save Failed: %@", [error localizedDescription]);
    } else {
        NSLog(@"Save Succseeded");
    }

}

[self dismissViewControllerAnimated:YES completion:nil];

}

0 个答案:

没有答案