2010-11-16 3 views
0

coredata лучше, чем FMDB? Можем ли мы сохранить первичный ключ в данных ядра? или любой другой метод , чтобы получить, а не использовать primarykey в основных данных? любой учебник, пожалуйста?coredata лучше?

+0

Основные данные не требуют первичных ключей, поскольку это не база данных SQL, а система управления графами объектов. Каждый экземпляр объекта по определению является уникальным и занимает уникальное положение в графе, которое определяет его как абсолютно уникальное. Если вы попытаетесь подумать о Core Data в SQL-терминах, вы придете к огорчению. – TechZen

ответ

7

Я не думаю, что эти две вещи являются аналогами. FMDB - это всего лишь обертка вокруг собственных API-интерфейсов SQLite, CoreData - это платформа сохранения объектов, для которой SQLite является одним из возможных типов постоянного хранения.

Заканчивать Руководство по CoreData программирования от Apple: https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/CoreData/cdProgrammingGuide.html

, а также данное руководство по разработке с CoreData на Mac: https://developer.apple.com/macosx/coredata.html

CoreData не предлагает первичного ключа uniquing, хотя, как правило, uniquing является обрабатывается вашим кодом приложения. FMDB или даже собственный API SQLite может быть лучше для вас в зависимости от ваших конкретных требований.

+0

Uniquing in Core Data обрабатывается самим объектом. Каждый объект и каждое отношение уникальны по определению. – TechZen

+0

Каждый экземпляр объекта NSManagedObject уникален, так как CoreData будет управлять собственным первичным ключом в таблице SQLite. Однако CoreData не предпринимает никаких действий, чтобы гарантировать, что объекты действительно различны. То есть предположим, что у вас есть сущность с memberId или emailAddress, вы можете захотеть создать уникальную на основе одного из этих свойств, и для этого в CoreData нет встроенного средства. – ImHuntingWabbits

Смежные вопросы