我正在构建一个需要核心数据关系的应用程序,如下所示:
entityA <<---> entityB (e.g. any given entityA can hold many entityB objects)
我有两个带有entityA 列表项的表视图,我希望能够在任何给定的entityA 对象中存储entityB 对象。
我对使用与核心数据的关系不熟悉(对 swift 也相当陌生),并且想了解如何实现这项工作。有人有任何适合我看的快速教程或任何其他可以帮助我学习的资源吗?
抱歉,如果我的问题没有多大意义,如果您需要的话请让我澄清。
谢谢!
UPDATE:
这是我想学习的更具体的内容。
假设我有实体“人”(属性可能包括姓名、年龄等)和一个表格视图,我的应用程序用户可以在其中添加一个人。 (我已经建立并知道如何正确执行)但是,现在我想添加实体“餐”(属性可能包括食品),并且餐是它自己的表格视图,我可以通过选择我想要的人来访问它想加餐。每人可以多吃一顿,但每餐只能有一个人。
问题是:为了实现这一目标,我的核心数据模型、获取请求等会是什么样子?
希望这足够清楚! :)
Thanks
这是我用于创建膳食的函数的代码片段:
func createMeal() {
let entityDescription = NSEntityDescription.entityForName("Meal", inManagedObjectContext: managedObjectContext!)
let meal = Meal(entity: entityDescription!, insertIntoManagedObjectContext: managedObjectContext)
meal.mealName = mealNameTxt.text
meal.mealItem1 = mealItem1Txt.text
managedObjectContext?.save(nil)
}
嗯,这很简单。举个例子,你有一个分支,分支有很多规格。首先,您需要转到 xcdatamodel 并创建数据实体
然后打开编辑器(表格样式)并在分支实体中建立关系
之后,您还需要在branchSpecs中设置关系拼写错误
就是这样!您刚刚在核心数据实体之间创建了关系。您需要做的就是生成子类对象
现在一切都准备好了。您将在分支类中找到一个 NSSet * 对象,它保存该分支的数据相关规范。您还会发现一个名为 addSpecsObject 的方法,您可以使用它来存储规格对象。
我的案例的代码示例:
Branch * branch = [NSEntityDescription insertNewObjectForEntityForName:@"Branch"
inManagedObjectContext:managedObjectContext];
branch.name = obj.name;
branch.lattitude = obj.latitude;
branch.longitude = obj.longitude;
branch.dispalyedDescription = obj.dispalyedDescription;
for (FLBranchesSpecs * spec in obj.branchSpecs) {
BranchSpecs * branchSpec = [NSEntityDescription insertNewObjectForEntityForName:@"BranchSpecs"
inManagedObjectContext:managedObjectContext];
branchSpec.type = @(spec.type);
branchSpec.key = spec.key;
branchSpec.value = spec.value;
[branch addSpecsObject:branchSpec];
}
NSError *error;
if (![managedObjectContext save:&error])
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
与你想要的类似的东西
let person: AnyObject = NSEntityDescription.insertNewObjectForEntityForName("Person", inManagedObjectContext: self.managedObjectContext!)
//do you code assignment here
for meal in listOfMeals{
person.addMealObject(meal)
}
var error: NSError?
self.managedObjectContext?.save(&error)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)