Я использую основные данные для кэширования данных сервера в модуле, который я пишу, и хотел бы, чтобы обеспечить, чтобы другие части приложения не изменяли эти данные.Возможно ли вернуть NSManagedObjects только для чтения в Core Data?
Можно ли пометить либо мои экземпляры NSManagedObject, либо NSManagedObjectContext, используемые для их извлечения, как только для чтения? Поскольку контекст доступен непосредственно из объекта, пользователи могут изменять объект и вызывать [obj.managedObjectContext save:&errror]
.
Я видел множество ссылок на создание полностью доступного для чтения хранилища (например, здесь: Unable to create a readonly sqlite store in Core Data: Cocoa Error 260), но я не хочу, чтобы сам NSPsistentStore был доступен только для чтения (модуль, который я пишу, должен быть способен написать ему).
Одним из вариантов является преобразование управляемых объектов в простые подклассы NSObject с теми же свойствами. Но тогда я теряю некоторые приятные вещи, такие как ленивая загрузка и т. Д., Которые могут делать Core Data.
Любые идеи?