我的課有一些@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
是NSComparator
。
我認爲它們應該是相同的,但我不確定__strong
與for
循環在這種情況下的關係。
應該指出,第一個例子是一個水果圈。 –
將循環變量聲明爲'__strong'的唯一意義在於它允許您修改循環變量。默認情況下,在快速枚舉循環條件下聲明的循環變量是'__weak'和* immutable *,參見http://stackoverflow.com/questions/14209076/setting-objects-to-nil-during-fast-enumeration/14209189#14209189。 - 但你只修改本地變量,而不是原始數組,正如答案中所述。 –