gpt4 book ai didi

ios - 结构 isKindOfClass

转载 作者:行者123 更新时间:2023-11-29 13:10:36 25 4
gpt4 key购买 nike

如何确定结构是否属于特定类型?换句话说,如果我得到一个对象,我怎么知道底层类型是一个结构体?

+(BOOL)isPrimitive:(id)input
{
return [input isKindOfClass:[NSNumber class] ] || [input isKindOfClass:[NSDate class]] || [input isKindOfClass:[NSString class]]
|| __IS_THIS_A_STRUCT__ (specifically SEL);
}

我应该用什么代替 IS_THIS_A_STRUCT

最佳答案

根据您的评论,您似乎知道一个属性并且希望在它返回一个结构时以某种方式操作。如果是这样,那么您可以执行以下操作:

if(!strcmp([[self class] 
instanceMethodSignatureForSelector:@selector(propertyName)].methodReturnType,
@encode(SEL)))

@encode 返回 type encoding对于命名类型,它是一个 C 字符串。 instanceMethodSignatureForSelector 返回 NSMethodSignature它可以将该方法的返回类型指定为编码类型。

不保证两种类型编码具有相同的身份,但具有相同的值。因此,您可以使用 C 函数 strcmp 来检查它们是否相同。

您可以使用 NSSelectorFromString如果选择器名称在编译时未知。

关于ios - 结构 isKindOfClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17481043/

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