NSManagedObjectContext
의 save
CoreData 메소드에서 문제가 발생했습니다. 먼저 Integer 16
이라는 새 필드를 추가하기 위해 새 모델 버전을 만들었습니다. 그리고이 필드를 테이블 뷰에 표시해야합니다. 이전 모델 버전에는이 필드가 없으므로 데이터베이스의 초기 값은 NULL
입니다. tableview:cellForRowAtIndexPath:
에서 NSFetchedResultController
으로 가져온 내 데이터 소스에서 NSManagedObject
을 가져옵니다. 먼저 해당 필드 값을 확인합니다. NULL
인 경우 하나 만들고 레코드를 업데이트하고 데이터베이스에 컨텍스트를 저장하려면 NSManagedObject
에 setValue:forKey:
을 수행합니다. 그러나 .sqlite
파일을 열면 값이 저장되지 않습니다. 그래서 왜 가치가 저장되지 않는지 궁금합니다.CoreData 저장이`tableview : cellForRowAtIndexPath :`method에서 작동하지 않습니까?
한편 iOS 개발을하고 있습니다.
감사합니다.
바보 같은 질문 : .sqlite 파일이 들어있는 디렉토리는 무엇입니까 ?? 번들로 액세스하려고하면 읽기 전용입니다. –
개체를 성공적으로 만들고 데이터베이스에 초기 정보를 씁니다. 일부 정보를 업데이트하려는 경우 save 메서드는 아무 것도 수행하지 않습니다. – Dzanvu
'tableView : cellForRowAtIndexPath :'의 변경 사항을 저장하는 것은 대단히 나쁜 생각입니다. 코드를 수정하여 작동하더라도 성능이 매우 좋지 않습니다. –