Как можно сослаться на дочернее имя объекта в предикате для запроса выборки родительского объекта?

Jarret Hardie корректен. Или, сначала объедините свои изменения назад в ведущее устройство и затем попробуйте нажатие. По умолчанию, git push нажатия все ответвления, которые имеют имена, которые соответствуют на удаленном - и никакие другие. Таким образом, это - Ваши два варианта - или определяет, что явно как Jarret сказало или слияние назад к общему ответвлению, и затем продвиньте.

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

Редактирование/Разъяснение

Принятие Вашего upstreammaster ответвление готово продвинуть тогда, Вы могли сделать это:

  1. Получение по запросу в любых изменениях от восходящего потока.

    получение по запросу мерзавца $ восходящее ведущее устройство

  2. Переключатель к моему локальному основному ответвлению

    ведущее устройство контроля мерзавца $

  3. Слияние изменяется в от upstreammaster

    Нажатие upstreammaster

  4. слияния мерзавца $ мои изменения

    нажатие мерзавца $ в восходящем направлении

Другая вещь, которую Вы можете хотеть сделать, прежде чем продвижение будет к rebase Ваши изменения против восходящего потока/ведущего устройства так, чтобы Ваши фиксации были всеми вместе. Можно или сделать это как отдельный шаг между № 1 и № 2 выше (git rebase upstream/master), или можно сделать это как часть получения по запросу (git pull --rebase upstream master)

7
задан Greg Martin 16 October 2009 в 17:24
поделиться

3 ответа

Я получил ответ от Apple по адресу http: // bugreport.apple.com номер проблемы 7318897:

entity.name не является смоделированным свойством, поэтому это незаконно. он случайно работает в двоичном хранилище. Правильный способ выборки подэлементов - сделать это в NSFetchRequest и использовать либо setIncludesSubentities, либо нет.

Таким образом, кажется, что правильным решением будет иметь отдельные запросы выборки и объединить наборы результатов после выполнения.

12
ответ дан 6 December 2019 в 15:23
поделиться

Снимок в темноте, но как насчет использования значения className в предикате?

NSPredicate *subclassAPredicate = [NSPredicate predicateWithFormat:@"someValue > %d AND child.className = %@", 100, @"SubclassA"];

(Обратите внимание, что у вас есть ошибка в формате вашего предиката. Вы использовали % @ , чтобы попытаться заменить целочисленное значение ( 100 ). % @ используется только для объектов. Используйте % d ] (или другой вариант) для примитивов)

РЕДАКТИРОВАТЬ Нашел!

Вы захотите сделать это:

NSPredice * p = [NSPredicate predicateWithFormat:@"entity.name = %@", @"SubclassA"];

Я только что протестировал это в одном из своих приложений, и, похоже, он работает.

- Другое редактирование -

Вот тест, который я выполнил и который, похоже, сработал:

NSManagedObjectContext * c = [self managedObjectContext];
NSFetchRequest * f = [[NSFetchRequest alloc] init];
[f setEntity:[NSEntityDescription entityForName:@"AbstractFolder" inManagedObjectContext:c]];
[f setPredicate:[NSPredicate predicateWithFormat:@"entity.name = %@", @"DefaultFolder"]];
NSError * e = nil;
NSArray * a = [c executeFetchRequest:f error:&e];
[f release];
NSLog(@"%@", a);

Когда я его запустил, a регистрирует два NSManagedObject, оба из @ "DefaultFolder" разнообразие (чего я ожидал). ( AbstractFolder - это абстрактный объект.

3
ответ дан 6 December 2019 в 15:23
поделиться

Единственный способ связать предикат с известной мне сущностью:

NSPredicate * predicate = [NSPredicate predicateWithFormat: @"(%K == %@)", fieldName, fieldValue, nil];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:[NSEntityDescription entityForName:entityName inManagedObjectContext:managedObjectContext]];
[request setPredicate:predicate];

Может быть, вы имели в виду имя поля?

Изменить: сущность связана с запрос, а не с предикатом.

-1
ответ дан 6 December 2019 в 15:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: