二、@encode()得使用
为了更好的互操作性,Objective-C 的数据类型,甚至自定义类型、函数或方法的元类型,都可以使用 ASCII 编码。@encode(aType) 可以返回该类型的 C 字符串(char *)的表示。
常见情况有将CGPoint、CGrect等结构体封装成OC类:
CellPoint selectedPoint = CellPointMake(0, 0);
NSValue *value = nil;
value = [NSValue valueWithBytes:&selectedPoint objCType:@encode(CGPoint)];
const
char
* pObjCType = [((NSNumber*)value) objCType];
if
(strcmp(pObjCType, @encode(
int
)) == 0) {
NSLog(@
"是int类型,值为%d"
,key,[value intValue]);
}
可以判断NSNumber得类型。