Первичный ключ для загрузки данных с iPhone

Я разрабатываю приложение, которое использует CoreData.

Так в.sqlite Файл, он управляет самим Первичным ключом.

Имя атрибута первичного ключаZ_PK.

Моя проблема в том, что я хочу, чтобы данные из моей таблицы сортировались по возрастанию по первичному ключу.

Я использую этот код

<code>NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"_PK" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[sort release];
</code>

Но это не работает.

когда я использую «заголовок» "_PK", он работает отлично

<code>NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[sort release];
</code>

Так есть ли другой способ использовать первичный ключ таблицы?

 Sarafaraz Babi14 апр. 2012 г., 13:55
В этом файле Когда я добавляю какую-то запись, таблица создает первичный ключ для всех записей. Мне просто нужно использовать этот первичный ключ для сортировки моих данных.
 rohan-patel14 апр. 2012 г., 13:47
Primary key in Core Data?
 Sarafaraz Babi14 апр. 2012 г., 13:53
Здравствуйте, Никита, я пишу .Sqlite файл в каталог документов.
 Nikita Pestrov14 апр. 2012 г., 13:47
Не могли бы вы опубликовать изображение или ваш Xcdatanodel, потому что ваш вопрос немного неясен?
 rohan-patel14 апр. 2012 г., 13:56
К сожалению. Я думаю, что вы не можете поиграть с этим файлом SQLite в каталоге документов. Его для внутреннего использования Core Data. Правильно ли вы указали документацию по основным данным?

Ответы на вопрос(1)

Решение Вопроса

нет контроля над уникальным первичным ключом, поэтому вы не можете контролировать его значение. Это просто деталь реализации, и на нее не следует ссылаться по какой-либо причине.

Итак, почему вы хотите сортировать на основе этого? Я могу придумать несколько причин ...

You want to access the objects in the order in which they were added to the database. However, you can easily do this in several ways.

1a. Вы можете добавить поле к каждой сущности. Вы можете установить его в UUID или в возрастающее целое число.

1б. Вы могли бы иметь сущность, что-то вроде & quot; EntityList & quot; который имеет упорядоченное отношение «один ко многим» с «сущностью».

1c. Вы можете добавить отношение «один к одному» от Entity к себе, а затем просто управлять им как связанным списком. Каждый раз, когда вы добавляете сущность, ставьте ее в конец списка.

Любое из этих решений дает вам возможность доступа к объектам сущности в порядке их добавления.

Or, you really don't care the order you see them, but you want a consistent ordering.

2а. Добавьте атрибут primaryKey и присвойте ему UUID.

2b. Используйте упорядоченное отношение ко-многим.

Наконец, если вам действительно нужен доступ на основе первичного ключа, я бы предложил создать отдельную базу данных sqlite, которую вы используете для доступа с особым ключом. Затем вы можете связать ключ с objectID объекта в хранилище CoreData.

 Sarafaraz Babi16 апр. 2012 г., 15:03
Спасибо, Джоди, у меня есть альтернативное решение для этого. Но я просто хотел знать, возможно ли это или нет? Спасибо за помощь.

Ваш ответ на вопрос