Jarret Hardie корректен. Или, сначала объедините свои изменения назад в ведущее устройство и затем попробуйте нажатие. По умолчанию, git push
нажатия все ответвления, которые имеют имена, которые соответствуют на удаленном - и никакие другие. Таким образом, это - Ваши два варианта - или определяет, что явно как Jarret сказало или слияние назад к общему ответвлению, и затем продвиньте.
был разговор об этом в почтовом списке Мерзавца, и ясно, что это поведение не собирается измениться в ближайшее время - многие разработчики полагаются на это поведение в своих рабочих процессах.
Редактирование/Разъяснение
Принятие Вашего upstreammaster
ответвление готово продвинуть тогда, Вы могли сделать это:
Получение по запросу в любых изменениях от восходящего потока.
получение по запросу мерзавца $ восходящее ведущее устройство
Переключатель к моему локальному основному ответвлению
ведущее устройство контроля мерзавца $
Слияние изменяется в от upstreammaster
Нажатие upstreammaster
слияния мерзавца $ мои изменения
нажатие мерзавца $ в восходящем направлении
Другая вещь, которую Вы можете хотеть сделать, прежде чем продвижение будет к rebase
Ваши изменения против восходящего потока/ведущего устройства так, чтобы Ваши фиксации были всеми вместе. Можно или сделать это как отдельный шаг между № 1 и № 2 выше (git rebase upstream/master
), или можно сделать это как часть получения по запросу (git pull --rebase upstream master
)
Я получил ответ от Apple по адресу http: // bugreport.apple.com номер проблемы 7318897:
entity.name не является смоделированным свойством, поэтому это незаконно. он случайно работает в двоичном хранилище. Правильный способ выборки подэлементов - сделать это в NSFetchRequest и использовать либо setIncludesSubentities, либо нет.
Таким образом, кажется, что правильным решением будет иметь отдельные запросы выборки и объединить наборы результатов после выполнения.
Снимок в темноте, но как насчет использования значения 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
- это абстрактный объект.
Единственный способ связать предикат с известной мне сущностью:
NSPredicate * predicate = [NSPredicate predicateWithFormat: @"(%K == %@)", fieldName, fieldValue, nil];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:[NSEntityDescription entityForName:entityName inManagedObjectContext:managedObjectContext]];
[request setPredicate:predicate];
Может быть, вы имели в виду имя поля?
Изменить: сущность связана с запрос, а не с предикатом.