我有两个具有多对多关系的实体,每个列表可以有多个项目。
基本上我想要实现的是在点击时将项目保存到特定列表。
我已经想出如何保存新列表:
- (IBAction)handleBtnAddList:(id)sender
{ MyListAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSManagedObject *newList;
newList = [NSEntityDescription
insertNewObjectForEntityForName:@"List"
inManagedObjectContext:context];
[newContact setValue:@"Shopping" forKey:@"name"];
NSError *error;
[context save:&error]; }
但是如何将项目保存到新创建的“购物”列表?
任何帮助表示赞赏。提前谢谢!
您好,终于有机会试试这个。它现在正在运行但遇到了另一个问题。我可以添加一个新列表,但似乎无法添加项目。
我查看了sqlite数据库,在'Item'实体下,名为'zLists'的列为空。如何获得与该项目所在的“列表”相对应的值?
这就是我所拥有的
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSManagedObject *list = [NSEntityDescription
insertNewObjectForEntityForName:@"List"
inManagedObjectContext:context];
[list setValue:@"Test List" forKey:@"name"];
NSManagedObject *item = [NSEntityDescription
insertNewObjectForEntityForName:@"Item"
inManagedObjectContext:context];
[item setValue:@"Test Item" forKey:@"name"];
我还尝试在最后添加它,但它会崩溃应用程序
[item setValue:@"Test List" forKey:@"lists"];
答案 0 :(得分:0)
对于我使用代码的示例,您将需要这些先决条件......
NSManagedObjectModel
,List
,listDate
和listText
,NSManagedObject
准备(或已手动准备)List
子类。而不是您的代码行:[newContact setValue:@"Shopping" forKey:@"name"];
...
您可以选择使用点表示法以这种方式设置属性值...
newList.listDate = [NSDate date]; //sets the attribute to current date and time
newList.listText = <<some user input from (for example) a view controller>>;
或者为了匹配您的语法,您可以选择以这种方式使用键值编码。
[newList setValue:[NSDate date] forKey:@"listDate"];
[newList setValue:<<some user input>> forKey:@"listText"];