注意:解釋起來相當複雜。請在這一個裸露與我。快速枚舉類對象
大家嗨,
我執行的應用程序,其中一類的兩個實例以及類本身有「孩子」(放在裏面NSMutableArray
)。這是一個相當複雜的應用程序,但是感謝Objective-C,它很容易:類本身就是對象,可以有方法和「變量」(藉助於靜態變量等)。爲了讓自己變得容易,我對兩個實例(使用-
)和類(使用+
)實施accessor/setter方法來獲取和操作「子」,而無需直接訪問數組。我喜歡儘可能地關閉我的對象,並且這些方法會進行一些數據驗證。
我也從NSFastEnumeration
協議實現了快速枚舉實例方法。問題來了:我可以實現一個快速枚舉類方法並將其與Objective-C的for...in
構造一起使用嗎?爲了話,我可以實現這一點:
+ (NSUInteger)countByEnumeratingWithState: (NSFastEnumerationState *)state objects: (__unsafe_unretained id [])buffer count: (NSUInteger)len;
然後使用它的地方,這樣的:
for (id child in [MyClass class]) {
// Do magic stuff…
}
我在GNUstep的GSFastEnumeration.h
文件,實現快速列舉宏,其中申明上面是偷看可能,但我不確定蘋果是否也這樣做。
即使我不能將NSFastEnumeration
協議與我的類對象相關聯,是否可以快速枚舉而不使用該協議(以及未來驗證)?
謝謝。
它確實工作,但我想知道它是否能夠適應未來。但就像你說的,即使不符合協議,它可能是好的...並且會保持如此。 –