2016-06-15 3 views
0

그래서 CoreData에서 요소를 삭제하려고했는데 Stackoverflow에서 다른 답변을 따라했습니다. 버튼을 코어 데이터 하나의 요소를 삭제 NSManagedObject Swift

moneyManager.moneys.removeAtIndex(indexPath.row) 
let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
let context = appDel.managedObjectContext 
do { 
     context.deleteObject(moneyManager.moneys[indexPath.row] as! NSManagedObject) 
     try context.save() 
}catch { 
     print("Error not saved") 
} 

을 클릭하면 다음 코드가 데이터 모델에서 요소를 삭제의 내가 얻을 오류가 있습니다 :

캐스트를 '돈'에서 관련이없는 유형 'NSManagedObject'에 항상

실패

이제 다른 사람들이 AnyObject 배열을 사용하는 것을 보았습니다. 그렇지만이 배열이 어디에서 왔는지, 어디에서 선언해야하는지 이해하지 못합니다.

moneyManager는 사용자가 수행 한 모든 화폐 거래의 데이터를 저장하는 돈 배열을 갖는 클래스입니다. 나는 여기에서 데이터가 아니라 엔티티 자체에서 데이터를 삭제해야한다고 생각합니다. 맞습니까? 사전

+1

실제 유형은 무엇입니까? 그런데 코드에 치명적인 오류가 있습니다. 객체 배열에서 삭제 된 객체와 컨텍스트에서 삭제 된 객체가 서로 다를 가능성이 큽니다. – vadian

+0

구조체이고 돈을 String으로, 금액을 money로 두는 형태의 money 타입입니다. – KarolisShp

+0

컨텍스트에서 삭제 된 객체는 'NSManagedObject' 유형이어야합니다. 'NSFetchedResultsController'를 사용하고 있습니까? – vadian

답변

1

에서

덕분에 ... managedObjectContext에서 요소를 삭제하려면

appDelegateObj.managedObjectContext.deleteObject(dataArray[indexPath.row]) 
do { 
     try appDelegateObj.managedObjectContext.save() 
     dataArray.removeAtIndex(indexPath.row) 
} catch { 
     let saveError = error as NSError 
     print(saveError) 
} 

다음은 완전한 CRUD (읽기, 업데이트 및 삭제) 작업 설명이 한 튜토리얼.

꼭 확인해야합니다. 이것은 매우 간단합니다.

Reference Link

+0

고마워요! 이 튜토리얼을 공유해 주셔서 감사합니다. – KarolisShp

관련 문제