osx - delete person with all assigned books -


i working swift 4 osx.

   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)        person in people {            print("person: ", person.name!)            book in person.books {                 print("title: ", book.title!)               }                   }     }  catch { print(error) } 
  • i have entities: person , books
  • i can create person
  • i can create book assign person
  • and know how can information books assigned to
    person (code above)

now delete person assigned books. can in 1 step or have request every book objectid entity books , delete it? tried this:

   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)        person in people {            context.delete(person as! nsmanagedobject)            book in person.books {                 // request object id of book form books , delete            }                   }       } catch { } 

core data provides "relationship delete rules" (see relationship delete rules section in coredata programming guide) control happens related objects when object deleted.

in case, if set delete rule books relationship on person entity "cascade", core data automatically delete related book objects when delete person.


Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

performance - Why is XCHG reg, reg a 3 micro-op instruction on modern Intel architectures? -

jquery - Responsive Navbar with Sub Navbar -