IOS注意事项(2)

来源:互联网 发布:性价比高的汽车知乎 编辑:程序博客网 时间:2024/05/19 16:33

二、@encode()得使用

为了更好的互操作性,Objective-C 的数据类型,甚至自定义类型、函数或方法的元类型,都可以使用 ASCII 编码。@encode(aType) 可以返回该类型的 C 字符串(char *)的表示。

常见情况有将CGPoint、CGrect等结构体封装成OC类:

CellPoint selectedPoint =CellPointMake(0, 0);

 NSValue *value =nil;

 value = [NSValuevalueWithBytes:&selectedPoint objCType:@encode(CGPoint)];


还可以用来判断类型,比如
const char * pObjCType = [((NSNumber*)value) objCType];  
    if (strcmp(pObjCType, @encode(int))  == 0) {  
         NSLog(@"是int类型,值为%d",key,[value intValue]);  
     }  
 
  可以判断NSNumber得类型。