2016-08-17 5 views
2

coredataとswiftを使用して簡単なデータを挿入しようとしましたが、これは私のコードですが、これを実行してsqliteファイルを開くと、いずれか間違っているものを助けてください。Swiftを使用してCoreDataファイルを挿入した後にデータが表示されない

import UIKit 
import CoreData 

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] 

     print(documentsPath) 

     self.saveName("John") 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    func saveName(name: String) { 
     //1 
     let appDelegate = 
      UIApplication.sharedApplication().delegate as! AppDelegate 

     let managedContext = appDelegate.managedObjectContext 

     //2 
     let entity = NSEntityDescription.entityForName("Persons", 
                 inManagedObjectContext:managedContext) 

     let person = NSManagedObject(entity: entity!, 
            insertIntoManagedObjectContext: managedContext) 

     //3 
     person.setValue(name, forKey: "name") 

     //4 
     do { 
      try managedContext.save() 
      //5 
      //people.append(person) 
     } catch let error as NSError { 
      print("Could not save \(error), \(error.userInfo)") 
     } 
    } 

} 
+0

実際に保存が成功したか、エラーになったのですか?管理対象オブジェクトコンテキストと永続的なストアコーディネータはどこで設定しますか?実際にはこれらの 'Persons'エンティティを検査中のファイルに格納していますか? – Jonah

答えて

1

このような方法を試してください。あなたが持っているコードは、追加と更新のためのものです。

func saveName(name: String) { 
    let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
    let context: NSManagedObjectContext = appDel.managedObjectContext 
    let newItem = NSEntityDescription.insertNewObjectForEntityForName("Persons", inManagedObjectContext: context) as! Persons 
    newItem.person = name 
    do { 
     try context.save() 
    } catch let error as NSError { 

     print("Unresolved error \(error), \(error.userInfo)") 
     abort() 
    } 

} 
+0

私は宣言されていないタイプのPersonsを取得します。Personsとは何ですか? – Max

+1

人物はエンティティ名でなければなりません。 – MwcsMac

関連する問題