iOS的Swift的 – 如何存储arrays与核心数据?

我是iOS开发新手,想知道我应该指定哪种数据types来存储多个string(数组)。 该应用程序是做食物,我需要存储多个成分作为一个属性。

我正在考虑把配料做成实体,但我只是想让初学者变得容易。 我已经阅读了有关可变形的types,但人们似乎并不推荐使用它来存储数组。

警告:提前斟酌答复。

你没有。

将事物存储在一个数组中并不会让事情变得简单。 相反,只需要一个小时就能让事情变得更加困难。想象一下,您想要显示包含选定成分的所有食谱。 这对你的数组破解并不容易,只有一个合适的模型,它只是一行代码。

我build议使用与“join实体”的良好的旧关系。

基本配方数据模型

是的,这比黑客一起勉强工作更复杂。 但是这是正确的方法。

你所想的正是你应该做的。 核心数据是以数组结构的forms存储值。 您应该创build实体成分,并将您的食品实体(或任何您想称之为)与成分实体的关系连接起来。

有一种方法。 你可以手动做每个元素,例如你有你的数组:

let employee: NSMutableArray = [] employee.addObject(["name":"Bill","LastName":"Hanks"]) employee.addObject(["name":"Rolex","LastName":"Swarzer"]) employee.addObject(["name":"Clive","LastName":"Martin"]) employee.addObject(["name":"Jimi","LastName":"Hendrix"]) 

假设你已经用实体“Employee”和Attributes“name”和“lastname”创build了你的coreData,你可以执行以下操作来添加它:

 let appDel = UIApplication.sharedApplication().delegate as! AppDelegate let context = appDel.managedObjectContext for item in employee { do { let newUser = NSEntityDescription.insertNewObjectForEntityForName("Employee", inManagedObjectContext: context) newUser.setValue(item["name"], forKey: "name") newUser.setValue(item["LastName"], forKey: "lastname") try context.save() } catch { //do nothing } 

然后,您可以使用您的获取请求或NSFetched结果控制器获取所有元素