我遇到了一个代码片段:
if(strcmp([obj objCType], @encode(BOOL))) == 0)
其中obj
一种NSNumber
. 这里到底发生了什么?
问问题
769 次
1 回答
5
分开来。
[obj objCType]
返回一个包含那个的char *
Objective-C编码。NSValue
NSNumber
是 的子类NSValue
。
@encode(BOOL)
对 type 做同样的事情BOOL
。
strcmp()
比较两个字符串。如果字符串相等,则返回0
。
strcmp(…) == 0
strcmp()
如果与相等的字符串比较,则返回 true 。
我想你明白这是怎么回事:如果 NSValueobj
的编码等于 type 的编码,则条件返回 true BOOL
。
于 2013-08-02T13:23:34.887 回答