2017-05-29 155 views
1

我有一個NSManagedObject類名爲「Person」新元素添加到NSManagedObject

import Foundation 
import CoreData 

@objc(Person) 
public class Person: NSManagedObject { 
    @NSManaged public var firstName: String 
    @NSManaged public var secondName: String 
} 
在另一個視圖控制器

,我設置以下變量:

var Persons = [Person]() 

現在我想補充一個新的價值給我的變量人。 我想是這樣的:我必須使用的佔位符<newElement: Person> 添加一個新的人與第一和第二名

Persons.append(<newElement: Person>) 

但語法?

回答

1

你必須使用指定的初始化

var people = [Person]() // variable names are supposed to start with a lowercase letter. 

let newPerson = NSEntityDescription.insertNewObject(forEntityName: "Person", into:context) as! Person 
newPerson.firstName = "John" 
newPerson.lastName = "Doe" 
people.append(newPerson) 

context代表的核心數據堆棧的管理對象範圍內。

要永久保存新對象,必須保存上下文。

+0

此代碼是否將這些值自動保存到核心數據中或僅保存在變量人員中? :) – Ghost108

+0

你必須顯式調用'context.save'來保存數據。 – vadian

+0

非常感謝你:) – Ghost108