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