1

에 대한 업데이트에 응답하지 않습니다. 문맥에서 User 엔티티를 가져 오는 NSFetchedResultsController이 있습니다. 모든 것이 잘 작동합니다. User 개체로의 변경은 fetchedResultsController에 의해 인식되고 그에 따라 tableView 업데이트로 인식됩니다.NSFetchedResultsController는 이진 속성

그러나 각 User 엔티티에는 이진 데이터 (NSData) picture 속성이 있습니다. Userpicture을 변경할 때마다 fetchedResultsController은 변경 사항을 적용하지 않습니다.

user.picture = UIImagePNGRepresentation([UIImage imageNamed:@"picture.png"]); 

나는 picture가 변경 될 때 controllerDidChangeContent: 호출 할 수 있지만, 아무것도가 트리거되지 않습니다 기대.

편집 : 비동기 호출로 성공 블록에 picture을 설정한다는 사실을 잊어 버렸습니다. 차이가 있는지 확실하지 않습니다.

아이디어가 있으십니까?

+0

기본 모델에 그림 속성이 표시되는 방식은 무엇입니까? 지속성 또는 일시적인 속성입니까? 바이너리 형식 또는 다른 것으로 선언되어 있습니까? 그리고 어떻게 가치를 바꾸고 있습니까? 변경 사항이 올바른 핵심 데이터 설정자를 트리거하도록하기 위해 일반적인 핵심 데이터 의미 체계를 사용하고 있습니까? –

+0

바이너리 데이터 대신 변형 가능을 지정하면 어떻게됩니까? Apple Xcode Reference : Core Data Programming Guide에서 Transformable 사용 방법을 읽을 수 있습니다. – ma11hew28

+0

@tim 그림 속성은 영구 이진 데이터로 저장됩니다. 그림을 설정하려면'[self setPicture : image]'를 호출합니다. @matt Transformable도 나에게 효과가 없었지만 이진 데이터 대신 핵심 데이터에 UIImage를 저장할 수있었습니다. 나는'User' 객체에서'didChangeValueForKey :'를 확장하고 위임 메소드를 호출 할 수 있습니다. 아마도 위임을 할 것입니다. – johngraham

답변

-1

기본적으로 NSFetchRequest는 NSMutableArray이 아닌 NSArray을 반환합니다. 배열 유형이 NSMutableArray인지 확인한 다음 아래 fetchRequest 행을 사용하십시오.

NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];

이 더 많은 정보를

here를 찾을 수 있습니다.

+0

이것은 실제로 내 질문에 대답하지 않습니다. 어쩌면 나의 질문은 명확하지 않을 수 있습니다. 나는'fetchedResultsController'가 NSData 필드에 대한 변경을 선택하지 않는 이유를 묻습니다. NSArray, NSMutableArray 또는 executeFetchRequest와 관련이 없어야합니다. – johngraham