2013-04-28 4 views
0

NSManagedObjectContext에 쓰여진 NSManagedObject * obj가 있습니다. 여기에는 ~ 5-10MB 크기의 NSData * 값을 반환하는 "데이터"키가 포함 된 키/값이 있습니다. 값이 저장되는 url/file 경로는 어떻게 얻을 수 있습니까?NSManagedObjects에 파일 URL이 있습니까?

답변

2

기본적으로 코어 데이터는 모든 것을 SQLite와 같은 영구 저장소 파일에 저장합니다. 따라서 디스크에 개체에 할당 한 데이터를 보유하는 개별 파일이 없습니다.

원하는 경우 모델의 개별 특성에 대해 .allowsExternalBinaryDataStorage을 켤 수 있습니다. 이렇게하면 핵심 데이터가에 해당하는 경우 데이터를 디스크의 개별 파일 인 으로 이동시킬 수 있습니다.

성능 최적화 목적으로 사용하는 것이 중요합니다. 핵심 데이터는 디스크에있는 파일의 URL을 알려주는 API를 공개하지 않습니다.

+0

아, 감사합니다. 마이크. – user592419

+0

ExternalBinaryDataStorage는 SQLite 데이터베이스 파일의 크기를 줄이는 데 유용합니다. 추가 설명 : allowsExternalBinaryDataStorage는 성능에 부정적인 영향을 미칠 수 있습니다. 예를 들어, 이주를 수행하는 동안 상점의 모든 오브젝트가 한 번로드되고, 가장 쉬운 경우 간단히 대상 저장소로 복사됩니다. 따라서 비선형 디스크 액세스가 많습니다. 마이 그 레이션이 중요하지 않은 경우 대부분의 상황에서 쉽게 이런 종류의 문제를 해결할 수 있기 때문에 실제로 적용되지 않습니다. –

0

해당 파일 URL이 없습니다. 이 관리 객체와 속성을 설계 한 방식에 따라 데이터는 영구 저장소 내부에 저장됩니다.