Это повторение через множество - то же самое как этот развернутый код?

У моего класса есть некоторые (сильный) @properties; яблоки, бананы и апельсины NSArray* тип; и я задаюсь вопросом если это:

for(NSArray* __strong fruit in @[apples, bananas, oranges])     {
    fruit = [fruit sortedArrayUsingComparator:comparator];
}

совпадает с этим:

apples  = [apples  sortedArrayUsingComparator:comparator];
bananas = [bananas sortedArrayUsingComparator:comparator];
oranges = [oranges sortedArrayUsingComparator:comparator];

comparator is an NSComparator.

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

0
nl ja de
Нужно отметить, что первый пример - Фруктовая Петля.
добавлено автор Hot Licks, источник
Единственное значение объявления переменной цикла как __ сильный состоит в том, что это позволяет вам изменять переменную цикла. По умолчанию переменные цикла, объявленные в условии быстрой петли перечисления, <закодируйте> __ слабый и неизменный , посмотрите, например. stackoverflow.com/questions/14209076/…. - Но вы изменяете только локальную переменную, не исходные массивы, как уже сказано в ответах.
добавлено автор Martin R, источник

2 ответы

this is not the same code, the loop will not change the values of the variables apples, bananas and oranges

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

в 'развернутом' коде вы назначающий результат вида на оригинальные переменные, поэтому переписывая содержание этого переменные.

Также я думаю ваш тип петли , Фрукт неправильный, если яблоки , бананы и , апельсины имеют тип Фрукты а не типа NSArray , какая остальная часть кода предлагает.

2
добавлено
Ах, да, you' ре прямо о типе петли – I' ve обновил его.
добавлено автор Josh Paradroid, источник

Нет, это не то же самое, то же самое было бы:

NSArray* fruits= [apples sortedArrayUsingComparator: comparator ];
fruits= [bananas sortedArrayUsingComparator: comparator];
fruits= [oranges sortedArrayUsingComparator: comparator];

Таким образом, первые два вида бесполезны, потому что вы назначаете фрукты только на последний сортированный массив: апельсины.

A possible solution

Не ясно, чего вы хотите достигнуть, возможно что-то вроде этого:

NSArray* sortedFruits;
for(NSArray* fruit in @[apples, bananas, oranges])     
{
    NSArray* sorted = [fruit sortedArrayUsingComparator:comparator];
    [sortedFruits addObject: sorted];
}

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

1
добавлено
Проблема состоит в том, что вы используете фрукты, чтобы перечислить по множеству, но также и назначаете его на перечисляемые значения. Мартин Р ' s комментарий объясняет это очень хорошо.
добавлено автор Ramy Al Zuhouri, источник
I' ve, записанный возможное решение.
добавлено автор Ramy Al Zuhouri, источник
@JoshParadroid: Если вы объявляете яблоки, бананы и апельсины как изменчивые множества , то можно сортировать их в петле с [фрукты sortUsingComparator:comparator] .
добавлено автор Martin R, источник
I' m использующий ДУГУ (я предполагаю, что должен был упомянуть это – I' ll помечают его), и если я удаляю __ сильный, я получаю ошибку об изменении быстрой переменной перечисления. Есть ли правильный путь к (и это - вероятно, не правильная терминология), ' рулон up' мой расширенный код в для петли?
добавлено автор Josh Paradroid, источник
Я понимаю это теперь. I' m просто задающийся вопросом, если there' s лучший способ сделать то, что мой расширенный (и правильный) код делал, возможно в некотором другом виде петли.
добавлено автор Josh Paradroid, источник
Спасибо @RamyAlZuhouri. That' s почти точно, чего я хотел достигнуть, только я надеялся держать множества как их оригинальные имена переменной, которые делает развернутая версия.
добавлено автор Josh Paradroid, источник
@MartinR, В то время как это работало бы, в действительности I' m сортировка многой iOS UIView и I' m не уверенный, если есть какие-либо соображения относительно использования изменчивого против неизменного элемента, инициализированного через перо. Спасибо все же.
добавлено автор Josh Paradroid, источник