Как создать запись по умолчанию в сущности (Базовые данные)? - PullRequest
0 голосов
/ 24 октября 2011

Я только делаю свои первые шаги в Базовых данных и хотел бы изменить часть моего кода, который использует простой список для хранения некоторых данных о предпочтениях программы. Я хотел бы использовать Core Data вместо. Просто по образовательным причинам.

Итак, в основном я создал сущность с именем «setup» с набором атрибутов, таких как «language», «debug info», «server ip» и так далее. В объекте должна быть только одна запись данных, так как нет смысла хранить несколько установок.

Затем я создал GUI в конструкторе интерфейса, перетаскивая объект по окну GUI. Я выбрал «просмотр одного элемента». Я могу запустить код, но есть проблема:

Я не могу изменить содержимое элементов управления. Я предполагаю, что это просто потому, что в сущности нет записи. Итак, мой вопрос, как создать запись по умолчанию? Я не хочу использовать «представление Master / Detail», поскольку мне просто нужна только одна запись данных, которая должна быть сгенерирована автоматически, если файл сохраненных данных еще не создан.

1 Ответ

0 голосов
/ 25 октября 2011

Я решил проблему до сих пор. Я добавил следующие строки в метод "- (NSManagedObjectContext *) managedObjectContext". Он создает запись по умолчанию в объекте при первом вызове метода. Значения атрибутов задаются в модели данных.

NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Setup" inManagedObjectContext:managedObjectContext]];
[request setIncludesSubentities:NO]; //Omit subentities. Default is YES (i.e. include subentities)
NSError *err;
NSUInteger count = [managedObjectContext countForFetchRequest:request error:&err];
if(count==NSNotFound || count==0) 
{
    [NSEntityDescription insertNewObjectForEntityForName:@"Setup" inManagedObjectContext: managedObjectContext];
}

[request release];

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

...