相关疑难解决方法(0)

您如何管理和使用"多对多"核心数据关系?

我正在创建一个应用程序并尝试使用核心数据,因为它似乎是目标C批准的创建数据存储系统的方式.我使用的用例涉及"多对多"关系,就像您通常在标准SQL系统中看到的那样.我理解目标C不是数据库,而且工作方式不同.我还在这里查看了文档:

http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/CoreData/Articles/cdRelationships.html#//apple_ref/doc/uid/TP40001857-SW10

还有其他几个地方.然而,我仍然遇到麻烦.有人可以向我解释如果你有一个需要使用SQL交叉引用表的用例你会怎么做?例如:

经理人| 雇员

经理可能有几名员工,但员工可能还有几位经理.在SQL中,我创建了一个交叉引用表,然后使用它.

示例:http://www.tomjewett.com/dbdesign/dbdesign.php?page = manymany.php

有人可以解释你如何在核心数据中做到这一点?

根据核心数据文档,他们说:

"您使用两对多关系定义多对多关系.第一对多关系从第一个实体到第二个实体.第二个到多个关系从第二个实体到第一个实体.然后将每个设置为另一个的倒数.(如果您有数据库管理的背景,这引起您的关注,请不要担心:如果您使用SQLite存储,Core Data会自动为您创建中间连接表.) "

但是,除了"不担心"之外,我不知道这怎么可能起作用?

sqlite iphone core-data objective-c

19
推荐指数
1
解决办法
1万
查看次数

iOS 8 Swift - 保存多个实体的数据

我的练习应用程序有以下实体关系.

实体关系

而且我坚持使用由多个实体组成的新配方的保存部分.

我有RecipeIngredient中间(联合)实体的原因是我需要一个额外的属性,将按配方存储不同数量的成分.

这是实现,显然没有为每个新成分分配金额值,因为我不确定是否需要初始化这个RecipeIngredient实体,或者即使我这样做,我也不知道如何将它们全部粘合在一起食谱.

@IBAction func saveTapped(sender: UIBarButtonItem) {

    // Reference to our app delegate
    let appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate

    // Reference moc
    let context: NSManagedObjectContext = appDel.managedObjectContext!
    let recipe = NSEntityDescription.entityForName("Recipe", inManagedObjectContext: context)
    let ingredient = NSEntityDescription.entityForName("Ingredient", inManagedObjectContext: context)


    // Create instance of data model and initialise
    var newRecipe = Recipe(entity: recipe!, insertIntoManagedObjectContext: context)
    var newIngredient = Ingredient(entity: ingredient!, insertIntoManagedObjectContext: context)

    // Map properties
    newRecipe.title = textFieldTitle.text
    newIngredient.name = textViewIngredient.text

    ...

    // Save Form
    context.save(nil)

    // Navigate …
Run Code Online (Sandbox Code Playgroud)

core-data ios swift

3
推荐指数
1
解决办法
1174
查看次数

标签 统计

core-data ×2

ios ×1

iphone ×1

objective-c ×1

sqlite ×1

swift ×1