gpt4 book ai didi

objective-c - 快速枚举协议(protocol)的有趣任务

转载 作者:行者123 更新时间:2023-12-03 16:50:55 25 4
gpt4 key购买 nike

如何知道支持FE协议(protocol),我必须实现方法:– countByEnumerateWithState:objects:count:

但它的方法是不知道我想要枚举什么类型的对象。例如,我的自定义对象有两个数组:

NSArray* names - for NSString objects; 
NSArray* sites - for NSURL objects;

现在我想枚举它们:

for( NSString* name in myObj )
{

}

for( NSURL* url in myObj )
{

}

我可以这样做吗 – countByEnumerateWithState:objects:count: 定义它必须枚举哪种类型的对象? (不使用额外的类属性:))

最佳答案

没有。快速枚举只能支持每个类的一种枚举类型,因此您必须决定哪种情况对您更重要。

但是,NSEnumerator 还支持快速枚举。因此,您的类可以支持 2 个不同的枚举器(我们称它们为 nameEnumeratorurlEnumerator),然后该类的用户可以使用快速枚举,如下所示:

for (NSString *name in [myObj nameEnumerator]) { ... }
for (NSURL *url in [myObj urlEnumerator]) { ... }

关于objective-c - 快速枚举协议(protocol)的有趣任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4087958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com