2017-05-27 48 views
1

我試圖保存一些對象到NSSet,但最後一個對象只有保存。我的示例源代碼是一對多關係核心數據僅保存最後一個對象。其他人丟失

func saveData(){ 
    let appDelegate = 
    UIApplication.shared.delegate as! AppDelegate 
    let managedContext = appDelegate.managedObjectContext 

    let personEentity = NSEntityDescription.entity(forEntityName: "PersionalDetails", 
             in:managedContext) 
    let person = PersionalDetails(entity: personEentity!, 
        insertInto: managedContext) 

    let favourateEentity = NSEntityDescription.entity(forEntityName: "Favourites", 
               in:managedContext) 
    let favourate = Favourites(entity: favourateEentity!, 
           insertInto: managedContext) 

    person.name = "Ragul" 
    person.age = 28 
    person.mobileNumber = "0000000000" 
    person.sex = "male" 
    for i in 0..<5{ 
    favourate.movie = "Some movie" + "\(i)" 
    favourate.actor = "Some actor" + "\(i)" 
    favourate.song = "some song" + "\(i)" 
    favourate.person = person 
    } 
    do { 
    try managedContext.save() 
    } catch let error as NSError { 
    print("Could not save \(error), \(error.userInfo)") 
    } 
} 

請引導我脫離此錯誤。

回答

3

由於您在for循環中設置了相同對象的屬性,因此您只需獲取最後一個對象,您需要做的每次迭代for循環都需要創建Favourites的新實例,然後它將存儲所有您創建的對象不是唯一的最後一個。

for i in 0..<5{ 
    let favourate = Favourites(entity: favourateEentity!, insertInto: managedContext) 
    favourate.movie = "Some movie" + "\(i)" 
    favourate.actor = "Some actor" + "\(i)" 
    favourate.song = "some song" + "\(i)" 
    favourate.person = person 
} 
+0

它的工作。感謝您的快速回復 – Ragul

+0

@Ragul歡迎伴侶:) –

0

創建實體的新實例。

for i in 0..<5{ 

    let favourateEentity = NSEntityDescription.entity(forEntityName: "Favourites", 
               in:managedContext) 
    let favourate = Favourites(entity: favourateEentity!, 
           insertInto: managedContext) 

    favourate.movie = "Some movie" + "\(i)" 
    favourate.actor = "Some actor" + "\(i)" 
    favourate.song = "some song" + "\(i)" 
    favourate.person = person 

}