2017-08-18 9 views
0

私はosxのためにスウィフト4で働いています。エンティティに私が持っているすべての割り当てられた書籍を持つ人を削除

let appdelegate = NSApplication.shared().delegate as! AppDelegate 
    let context = appdelegate.persistentContainer.viewContext 
    var people = [Person]() 
    let request = NSFetchRequest<Person>(entityName: "Person") 
    do { 
     people = try context.fetch(request) 
     for person in people { 
      print("Person: ", person.name!) 
      for book in person.books { 
       print("Title: ", book.title!) 
      }   
     } 
    } 

catch { print(error) } 
  • :Personとブック
  • 私は人
  • を作成することができ、私は人
  • に割り当てる帳を作成することができますし、私は私が得ることができる方法を知っています本が割り当てられている情報
    この人(コード上)

私は削除しますかすべての割り当てられた本を持つ人。 私はこれを1つのステップで行うことができますか、またはすべての書籍オブジェクトIDにエンティティブックを要求して削除できますか?

let appdelegate = NSApplication.shared().delegate as! AppDelegate 
    let context = appdelegate.persistentContainer.viewContext 
    var people = [Person]() 
    let request = NSFetchRequest<Person>(entityName: "Person") 


    people = try context.fetch(request) 
     for person in people { 
      context.delete(person as! NSManagedObject) 
      for book in person.books { 
       // request object ID of this book form books and delete it 
      }   
     } 


    } catch { } 

答えて

0

コアデータは、オブジェクトが削除されたときに、関連するオブジェクトに何が起こるかを制御するために(関係がCoreData Programming Guideでルールのセクションを削除参照)「の関係がルールを削除」提供:私はこのような何かを試してみました。あなたのケースでは

あなたはPersonエンティティへの「カスケード」のbooks関係の削除規則を設定する場合は、Personを削除する場合、Core Dataは自動的にすべての関連Bookオブジェクトを削除します。

+0

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

関連する問題