2017-05-29 4 views
1

に新しい要素を追加し、私は「人」別のビューコントローラではNSManagedObject

import Foundation 
import CoreData 

@objc(Person) 
public class Person: NSManagedObject { 
    @NSManaged public var firstName: String 
    @NSManaged public var secondName: String 
} 

という名前NSManagedObjectクラスは、私は、次の変数が設定されている:

var Persons = [Person]() 

今私は新しいを追加したいです値を私の変数Personに返します。私は第一および第二の名前で新しい人を追加するには、プレースホルダ<newElement: Person> のために使用する必要が

Persons.append(<newElement: Person>) 

が、構文: 私はこのような何かを試してみましたか?あなたが指定イニシャライザ

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を使用する必要が

答えて

1

は、コアデータ・スタックの管理対象オブジェクトコンテキストを表します。

新しいオブジェクトを永続的に保存するには、コンテキストを保存する必要があります。

+0

このコードは値を自動的にコアデータに保存するか、変数personにのみ保存しますか? :) – Ghost108

+0

データを保存するには 'context.save'を明示的に呼び出さなければなりません。 – vadian

+0

ありがとうございます:) – Ghost108