我正在实现一个应用程序,其中一个类的实例以及类本身都有“孩子”(放置在 a 内NSMutableArray
)。这是一个相当复杂的应用程序,但多亏了 Objective-C,它变得轻而易举:类本身就是对象,可以有方法和“变量”(借助静态变量等)。
为了让自己更容易,我在我的实例(使用-
)和类(使用+
)上实现了访问器/设置器方法来获取和操作“孩子”,而无需直接访问数组。我喜欢尽可能地关闭我的对象,并且这些方法会进行一些数据验证。
我还从协议中实现了一个快速枚举实例方法。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
文件,它确认上述是可能的,但我不确定 Apple 是否也这样做。
即使我无法将NSFastEnumeration
协议与我的类对象相关联,没有该协议的快速枚举是否可能(并且面向未来)?