ManagedObject를 변경하고 해당 변경 사항을 영구 저장소에 저장하는 데 문제가 있습니다.NSManagedObject에 변경 사항 저장
작업은 개체를 삭제하고 개체를 삽입하는 것입니다. 그리고 그 객체들을 가져 오는 것. 말했듯이, 나는 가져온 관리 객체를 변경하지 못합니다.
두 개의보기 컨트롤러가 있습니다.
@property (nonatomic, strong) NSManagedObjectContext *managedObjectContext;
AppDelegate.m 파일은 애플리케이션의 최초보기 컨트롤러이 속성을 설정 : didFinishLaunchingWithOptions : 모두 공용 속성을보기 controller1 다시 통과
// get reference to view controller //
//..
controller1.managedObjectContext = self.managedObjectContext;
: 방법과 같이 managedObjectContext를 두 번째보기 컨트롤러로 푸시하면 prepareForSegue : 메소드에서 다음과 같이 수행됩니다.
// Get reference to the detail view //
MySecondViewController *controller2 = segue.destinationViewController;
// Pass the managed object context //
controller2.managedObjectContext = self.managedObjectContext;
이 두 번째 뷰 컨트롤러 내에서
나는 핵심 데이터의 개체를 가져오고이 같은 뷰 컨트롤러의 속성에 저장 ..
@property (nonatomic, strong) MyKindOfObject *object;
...
self.object = [fetchResults lastObject];
가져 오기 객체 내가 잘 결과를 얻을으로 잘 작동하는 것 같다
가져온 개체는 여러 속성을 가지며, 그 중 하나는 NSString 형식입니다. UITextField에 표시하는이 속성의 값입니다. 사용자는 여기에서 값을 변경할 수 있으며 완료되면 버튼을 누릅니다. 나는 작업을 붙잡고 나는 다음을 수행하십시오
// Save to CoreData //
NSError *error = nil;
if(![self.managedObjectContext save:&error]){
// handle the error //
NSLog(@"is error");
}
else{
NSLog(@"no error");
}
1)이 뷰 컨트롤러에 사용자 돌아갑니다 다음에 다시 오브젝트 것 : 핵심 데이터를 저장하려고 다음
self.object.mytext = textField.text;
을 가져올 수 있습니다. 그러나 여전히 오래된 가치가 있습니다.
2) 또한 SQLite Manager라는 Firefox 부가 기능을 사용하여 관련 sqlite 파일 내의 데이터를 주시합니다. 코드를 단계별로 실행할 때 save 메소드를 호출 한 후 파일에서 아무 것도 변경되지 않습니다.
또한 Xcode 내에서 변수보기를 사용하여 self.managedObjectContext 객체를 감시합니다. 내 객체에 새 데이터를 저장할 때 save를 호출하기 직전에 self.managedObjectContext의 속성 중 하나도 변경되지 않습니다 (unprocessedChanges 또는 changedObjects 등).
4) I 또한 managedObjectContext의 hasChanges 메소드 호출에 추가되지 않지만이 어떠한 리턴
if([self.managedObjectContext hasChanges]){
NSLog(@"changes managed object context!");
}
5) I에도 관련 managedObject의 hasChanges 메소드 호출을 첨가하지만,이 역시 반환 NO :
if([self.object hasChanges]){
NSLog(@"changes in managed object!");
}
나는 여기에서 완전히 잘못된 것을하고있다. 그러나 나는 그것이 무엇인지 알 수 없다. 진정으로 누군가 나를 도울 수 있기를 바랍니다. 미리 감사드립니다.
나는이 실수를 저질렀습니다. 필터링되지 않은 분노로 약 4 시간 후에 수정되었으며 모든 것이 다시 작동합니다. Brabbeldas 내가 널 사랑해. –