gpt4 book ai didi

ios - 使用 isKindOfClass 简洁地评估具有多个类检查的对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:47:13 26 4
gpt4 key购买 nike

有没有比

更好的方法来查看一个对象是否具有多个类之一
if ([item isKindOfClass:[NSArray class]] || [item isKindOfClass:[NSNumber class]] || 
[item isKindOfClass:[NSPredicate class]] || [item isKindOfClass:[NSMutableArray class]]
|| [item isKindOfClass:[NSString class]]) {
return YES;
};

还有比这更优雅的方式吗?最好是不需要为循环/数组创建类别或多行的内联方式。

最佳答案

也许是这个?

NSArray *classes = @[ [NSArray class], [NSNumber class], [NSPredicate class], (etc.)];
for (Class cls in classes) {
if ([item isKindOfClass:cls]) {
return YES;
}
}

它并没有明显更简洁,但我认为它更易于阅读和维护。

编辑:自然地,您会在我写这篇文章时添加关于没有循环或数组的规定。 :)

您也许可以使用 NSPredicate 和“@any.FUNCTION(isKindOfClass:)”键路径来完成它,但我认为它不会更优雅;大多数人只会觉得它更难阅读。我真的认为数组和 for 循环是解决问题的方法。

关于ios - 使用 isKindOfClass 简洁地评估具有多个类检查的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15608684/

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