仍然不熟悉Objective-C和我感到困惑枚舉...混淆枚舉...如何更改枚舉過程中的對象?
比方說,我有8個「車」對象和所有的人的一個NSArray有自己的「paintColor」屬性設置爲「紅色。我想通過數組枚舉並設置每個Car.paintColor屬性設置爲「藍色」,我該怎麼辦呢?
for (Car *car in myArray){
car.paintColor = @"blue";
}
不過,如果我做
Car *testCar = [myArray objectAtIndex:2];
NSLog(@"The car color for 3rd object in myArray is %@", testCar.color);
我仍然獲得「紅」。所以看來枚舉只是創建一個臨時對象,但不是mod ify數組中包含的實際對象。
什麼是正在做我想做的事情?我有很多的情況下我想通過一個數組枚舉,但實際上改變在陣列內
感謝
--edit
好的項目,感謝信息..你能解釋一下爲什麼這不起作用?
我有一個名爲「carsArray」的NSArray設置爲包含三個NSMutable字符串對象(「Buick」,「Bronco」,「Cadillac」)的屬性。
我再做
for (NSMutableString *car in myArray) {
car = [NSMutableString stringWithFormat:@"test"];
}
NSMutableString *temp = [myArray objectAtIndex:2];
NSLog(@"third car is %@", temp);
的NSLog是說 「凱迪拉克」。它不應該是「測試」嗎?
枚舉不應該產生臨時值。有一件事我注意到,在你調用NSLog的時候你正在讀取顏色屬性,但在枚舉器中你正在設置paintColor屬性。它可能是一個簡單的類型是搞砸了嗎? – Mattia
感謝您的信息。我已經添加了第二個示例,我想知道爲什麼那個不起作用 – sayguh