NSString* testObject = [[NSData alloc] init];testObject 在编译时和运行时分别是什么类型的对象?
2015-05-12 17:13
453 查看
声明
(实际编译的时候
NSString *testObject 等同于 id
testObject 编译器都会在 栈空间分配一个 id 类型的数据)id 数据实际上就是一个
struct objc_object 结构体指针,(如下定义)。
///
Represents an instance of a class.
struct
objc_object {
Class
isa OBJC_ISA_AVAILABILITY;
};
///
A pointer to an instance of a class.
typedef
struct objc_object *id;
因为不管指向的是什么类型的对象,一个指针所占的内存空间都是固定的,所以这里声明成任何类型的对象,最终生成的可执行代码都是没有区别的。这里限定了
代码的 错误 检查。
接着,你创建了一个
NSString *testObject是告诉编译器请把
testObject当做一个
NSString来检查,如果后面调用了非
NSString的方法,会产生警告。
(实际编译的时候
NSString *testObject 等同于 id
testObject 编译器都会在 栈空间分配一个 id 类型的数据)id 数据实际上就是一个
struct objc_object 结构体指针,(如下定义)。
///
Represents an instance of a class.
struct
objc_object {
Class
isa OBJC_ISA_AVAILABILITY;
};
///
A pointer to an instance of a class.
typedef
struct objc_object *id;
因为不管指向的是什么类型的对象,一个指针所占的内存空间都是固定的,所以这里声明成任何类型的对象,最终生成的可执行代码都是没有区别的。这里限定了
NSString只不过是告诉编译器如何进行
代码的 错误 检查。
接着,你创建了一个
NSData对象,然后把这个对象所在的内存地址保存在
testObject里。那么运行时,
testObject指向的内存空间就是一个
NSData对象。你可以把
testObject当做一个
NSData对象来用。
相关文章推荐
- NSString* testObject = [[NSData alloc] init];testObject 在编译时和运行时分别是什么类型的对象?
- NSString* testObject = [[NSData alloc] init];testObject 在编译时和运行时分别是什么类型的对象?
- 编译时和运行时的对象分别是什么
- Object-C 中各数据类型转换 NSData NSMutableData NSString Byte UIImage 合并音频
- Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage
- Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage
- Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage
- Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage
- Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage NSMutableData
- Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage NSMutableData
- Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage
- Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage
- Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage
- Object-C 中各数据类型转换 NSData NSMutableData NSString Byte UIImage 合并音频
- object-c NSString / NSData / char* 类型之间的转换
- OC笔记10(成员变量默认值,alloc和init)笔记11(对象的初始化与self)12(id类型与super关键字)
- Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage
- 【Java学习】java实例对象的编译时类型和运行时类型
- Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage
- Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage