我有一個核心數據爲基礎的應用程序,它擁有一個對象(列表)關係的多個對象(列表項)關係。我正在設備之間同步數據,並且作爲其中的一部分,我從後臺線程中的XML文件導入列表(通過NSOperation子類)。 當我更新現有列表時,我刪除了它的所有舊列表項(從特定於該線程的NSManagedObjectContext中)並將它們替換爲XML文件中的新列表項...刪除通過枚舉來處理該列表中的項目: for
枚舉,通過快速枚舉,通過[NSOperationQueue operations]安全嗎?像這樣: for (NSOperation *op in [operationQueue operations]) {
// Do something with op
}
由於操作是異步的,在另一個線程執行,operations可以隨時更改(包括主線程的執行期間)。快速枚舉可以防止這種情況,還
我想對id類型的對象使用快速枚舉。 基本上我在這裏失蹤的檢查: id object = <get object form somewhere>;
if(<check if object implements fast enumeration>)
for (id item in id<NSFastEnumeration>object)
<process item>