在OC中获取C的数据类型
来源:互联网 发布:乐视视频无法连接网络 编辑:程序博客网 时间:2024/05/13 13:24
--------------------------
1--使用@encode关键字
--------------------
使用@encode关键字,可以获取C和OC中的数据类型.
返回一个字符串的首字母的地址.
用法:
enum workday
{
mon,tue,thr,fri
};
struct aaa
{
int a;
float b;
char c;
};
union bbb
{
int a;
float b;
char c;
};
//基本类型和枚举
NSLog(@"%s",@encode(short)); //s
NSLog(@"%s",@encode(int)); //i
NSLog(@"%s",@encode(long)); //q
NSLog(@"%s",@encode(float)); //f
NSLog(@"%s",@encode(double)); //d
//由此可见,枚举的本质,就是int基本数据类型.
NSLog(@"%s",@encode(enum workday)); //i
//由此可见,数组的本质,就是一个指向数组中第一个元素的指针.
NSLog(@"%s",@encode(int[])); //^i
NSLog(@"%s",@encode(int[5])); //[5i]
//结构体和共用体
NSLog(@"%s",@encode(struct aaa)); //{aaa=ifc}
NSLog(@"%s",@encode(union bbb)); //(bbb=ifc)
//指针类型
NSLog(@"%s",@encode(int *)); //^i
NSLog(@"%s",@encode(struct aaa *)); //^{aaa=ifc}
//OC对象类型
NSLog(@"%s",@encode(NSObject *)); //@
NSLog(@"%s",@encode(NSSet *)); //@
--------------------------
2--使用–objCType方法
--------------------
使用NSValue对象的 –objCType方法,可以获取C和OC中的数据类型.
返回一个字符串的首字母的地址.
用法:
int i;
int *p = &i;
//可以判断OC对象中,所封装的C的数据类型.
NSValue *value = [NSValue valueWithBytes:&p objCType:@encode(int *)];
if(strcmp(value.objCType,@encode(int *)) == 0)
{
NSLog(@"这是一个int *类型的数据");
}
------------------------
3--返回C语言的字符串
--------------------
@encode( )指令和 –objCType方法:
1.返回的都是一个C语言的字符串,而不是一个OC的NSString类型的对象.
2.不能直接使用NSString对象的 –isEqualToString:方法,进行比较.
C字符串,比较方式:
1.可以使用C语言中的strcmp( , )函数. //需要导入#include <string.h>头文件.
2.可以使用@( )把C字符串,转换为OC的NSString对象,再调用 –isEqualToString:方法.
----------------
0 0
- 在OC中获取C的数据类型
- c语言的数据类型在oc中的对应
- OC在C语言基础上新增的基本数据类型
- C&OC的数据类型分类
- oc中常见的数据类型
- oc中常见的数据类型
- oc中在NSdate中获取年月日的方法
- oc中在NSdate中获取年月日的方法
- 在c的函数中调用oc的方法
- OC中id数据类型的使用
- OC语法<3.2> OC中特有的语法:Block数据类型
- C/C++/OC基本数据类型
- 在oc中编译c或c++
- C 函数指针 在OC中应用
- C语言数据类型在单片机 MCU 中占的内存大小
- OC字符串和 C 语言基本数据类型的相互转换
- OC的常用数据类型
- oc数据类型的转换
- Redis源码学习之【网络通信框架】
- Spatial Pyramid的BOW和Pyramid HOG的多核
- Redis源码学习之【命令协议格式】
- 使用vfork函数时出现“总线错误”
- Redis安装启动
- 在OC中获取C的数据类型
- shell scripts学习(三)
- Redis常用命令
- OC中的谓词
- <meta property="og:需要写的标签"的应用
- linux环境变量
- 0017 理解Java String和String Pool【入门】
- mysql多实例的配置和管理
- Matlab中imnoise函数的用法