在不同的ViewControllers中创建2个实体之间的关系

时间:2014-01-17 09:34:37

标签: ios objective-c

我有两个实体叫做播放列表和歌曲。首先,我使用以下代码将选定的播放列表传递给我的单身人士:

optionsSingle = [rowNumber singleObj];

optionsSingle.selectedRowNow = [devices objectAtIndex:indexPath.row];

optionsSingle.selectedRowNow将返回类似这样的内容,具体取决于名称:

0xb922600 <x-coredata://053340C7-00A3-47EA-A213-4A9B6164504F/Playlists/p6> ; data: {
    playlistName = playlist1;
    songs = "<relationship fault: 0xb961480 'songs'>";
})

问题是当我尝试在addSongsViewController中使用此播放列表对象时,它似乎无效。

我试图将这样的内容包含在songsDone方法中,但它不会让我使用addSongsObject。我已将2个实体包含在.m文件中。 optionsSingle.selectedRowNumber被声明为'playlist'对象类型。为什么我不能在已经传递的播放列表对象上使用此方法?

[optionsSingle.selectedRowNumber addSongsObject:newManagedObject2]

songsDone Method。

-(IBAction)songsDone:(id)sender{

    AppDelegate *appDelegate =
    [[UIApplication sharedApplication] delegate];

    NSManagedObjectContext *context =
    [appDelegate managedObjectContext];

   Songs *newManagedObject2 = (Songs*)[NSEntityDescription insertNewObjectForEntityForName:@"Songs" inManagedObjectContext:context];
    NSDate *today= [NSDate date];


    [newManagedObject2 setValue:video.author forKey:@"author"];
    [newManagedObject2 setValue:video.videoid forKey:@"link"];
    [newManagedObject2 setValue:video.title forKey:@"songName"];
    [newManagedObject2 setValue:today forKey:@"created"];


    NSError *error = nil;
    if (![_managedObjectContext save:&error]) {

        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();

}

1 个答案:

答案 0 :(得分:0)

(来自我上面的评论:) 如果selectedRowNumber包含Playlists对象,那么您应该声明它,而不是NSObject。否则编译器无法“知道”它响应addSongsObject:。 - 即。您应该在NSObject属性的定义中将Playlists替换为selectedRowNumber