Apple docs To Many Relations гласит: вы должны получить доступ к изменяемому набору прокси или упорядоченному набору, используя
NSMutableOrderedSet * set = [managedObject mutableOrderedSetValueForKey:@"toManyRelation"];
. Изменение этого набора добавит или удалит отношения к вашему управляемому объекту. Доступ к изменяемому упорядоченному набору с помощью метода доступа с помощью [] или. запись неверна и потерпит неудачу.
Нет, наиболее близким было бы:
for (Integer item : group<Integer>)
{
if (item <= 5)
{
break;
}
//do something
}
Конечно, если Java когда-либо получит краткие замыкания, было бы разумно написать что-то вроде метода .NET Enumerable.TakeWhile
, чтобы обернуть итерируемый объект ( group
в данном случае) и преждевременно завершить выполнение, если условие перестает выполняться.
Конечно, это выполнимо даже сейчас, но код для этого был бы некрасивым. Для справки, C # будет выглядеть так:
foreach (int item in group.TakeWhile(x => x > 5))
{
// do something
}
Может быть, Java когда-нибудь получит хорошие закрытия ...
for(Integer item : group<Integer>)
{
if (item <= 5)
break;
//do something
}
Вот что я могу придумать.
Для справки: второй ответ Джона Скита на Java в настоящее время для некоторого интерфейса Predicate
будет выглядеть примерно так:
for (int item : takeWhile(group, new Predicate<Integer>() {
public boolean contains(Integer x) {
return x > 5;
}
}) {
// do something
}
Отстойен синтаксис, а не семантика.