Ios 无法理解@encode和objCType
我遇到了一个代码片段:Ios 无法理解@encode和objCType,ios,objective-c,Ios,Objective C,我遇到了一个代码片段: if(strcmp([obj objCType],@encode(BOOL))==0)其中obj是一种NSNumber。 这里到底发生了什么事?别吵了 [obj objCType]返回一个字符*,其中包含该NSValue的Objective-C NSNumber是NSValue的子类 @encode(BOOL)对类型BOOL执行相同的操作 strcmp()比较两个字符串。如果字符串相等,则返回0 strcmp(…)==0如果与相等的字符串相比strcmp(),则返回t
if(strcmp([obj objCType],@encode(BOOL))==0)
其中obj
是一种NSNumber
。
这里到底发生了什么事?别吵了
[obj objCType]
返回一个字符*
,其中包含该NSValue的Objective-C
NSNumber
是NSValue
的子类
@encode(BOOL)
对类型BOOL
执行相同的操作
strcmp()
比较两个字符串。如果字符串相等,则返回0
strcmp(…)==0
如果与相等的字符串相比strcmp()
,则返回true
我想您看到了这一点:如果NSValueobj
的编码与类型BOOL
的编码相等,则条件返回true
[obj objCType]
返回一个字符*
,其中包含该NSValue的Objective-C
NSNumber
是NSValue
的子类
@encode(BOOL)
对类型BOOL
执行相同的操作
strcmp()
比较两个字符串。如果字符串相等,则返回0
strcmp(…)==0
如果与相等的字符串相比strcmp()
,则返回true
我想您看到了这一点:如果NSValueobj
的编码与类型BOOL
的编码相同,则条件返回true