我是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];
}