Форум программистов, компьютерный форум CyberForum.ru

core data, две сущности - Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
13Ori31
1 / 1 / 0
Регистрация: 11.03.2013
Сообщений: 43
19.07.2013, 11:18     core data, две сущности #1
Привет.
Есть база, в ней две сущности, предположим «факультет» и «студент» между ними связь много к одному и обратно).
Требуется добавить студента, но чтобы не было потерянной записи нужно указать ему его факультет.
Делаю так: есть поля текстовые куда пользователь водит название факультета и имя студента. Потом нажимает на кнопку save…
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
-(void)save{
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    [fetchRequest setEntity:[NSEntityDescription entityForName:@"fac"
                                    inManagedObjectContext:self.managedObjectContext]];
    
    NSPredicate *predicate =[NSPredicate predicateWithFormat:@"name LIKE %@",
                                                                   [fac text]];
    
    [fetchRequest setPredicate:predicate];
    NSArray *arrayIntem = [NSMutableArray arrayWithArray:[self.managedObjectContext
                                                          executeFetchRequest:fetchRequest
                                                          error:nil] ];
    Stud *stud = [NSEntityDescription
                        insertNewObjectForEntityForName:@"stud"
                        inManagedObjectContext:self.managedObjectContext];
    
    if ([arrayIntem count]{
            [stud setName:[nameStud text]];
            [[arrayIntem objectAtIndex:0] addStudObject:stud];
            [[stud managedObjectContext] save:nil];
            [self dismissViewControllerAnimated:YES completion:nil];
    }
     else{
        //если новый факультет
     }
}
добавляется все корректно, но с одним условием факультет надо водить строго как он есть в базе если он не новый…
понимаю что обычно если нужно сравнение строк не зависящее от регистра нужно обе переводить в верхний или нижний регистр, а затем сравнить.
Получение существующего факультета делаю так:
NSPredicate *predicate =[NSPredicate predicateWithFormat:@"name LIKE %@", [fac text]];
Поэтому перевести их оба в какой либо регистр не могу(не знаю как это сделать с полем name в сущности)
Возможно ли это?

Если нет то правильно ли будет реализовать это получив сперва массив факультетов без выборки, а затем сравнить элементы массива с требуемым факультетом с переводом регистра.?


спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2013, 11:18     core data, две сущности
Посмотрите здесь:

Нужно разъяснение с Core Data
core data newManagedObject setValue:
smart loading data
Core Audio
core data запрос на получение суммы атрибута, всех записей
Использование Core Data в статической библиотеке
Core Graphics анимация
Objective-C Как записать данные в соответствующую категорию с Core Data?
Муки выбора: core data или работа "напрямую" с sqlite
Core Data проверка уникальности записи
Improve Core Data skills
Отловить когда две вьюшки столкнутся

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
20.07.2013, 19:21     core data, две сущности #2
Можно вместо LIKE использовать MATCHES и передать регулярку, соответствующую факультету вне зависимости от регистра
Еще можно просто хранить все факультеты в одном регистре, а при выводе(если необходимо) форматировать как нужно.
13Ori31
1 / 1 / 0
Регистрация: 11.03.2013
Сообщений: 43
22.07.2013, 09:43  [ТС]     core data, две сущности #3
оказалось просто like[c] вместо like))
Objective-C
1
NSPredicate *predicate =[NSPredicate predicateWithFormat:@"name like[c] %@", [fac text]];
Yandex
Объявления
22.07.2013, 09:43     core data, две сущности
Ответ Создать тему
Опции темы

Текущее время: 01:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru