iOS 开发 iOS Developer

IOS 基础数据类型 Primitive type

2016-05-24  本文已影响171人  杰克大王

OC中要区分对象类型和基本数据类型.

对象:
NSString *msg = @"I am a msg";
每个对象都�由一个存储在栈(stack)区域的指针,和这个指针指向的堆(heap)区域的内存块 两者构成。

*msg -- 是指针
@"I am msg" -- 是存储在堆中的对象数据

本质上,msg(指针)是一个number,我们可以用NSLog %p 来打印出这个指针的值,打印出来的是一个十六进制的值(以0x为开始)

nil 也是一个number ,指向了堆区域的起始点 (location zero 0x0000)

当我们allocate 一个对象时, 和得到一个 非 0x0000 的指针,当把这个对象赋值给一个变量时,也就是把这个指针赋值给这个栈变量。

NSInteger 并不是一个对象哦,它只是 int 的 typedef而已

Talk is cheap, show me the code!!

NSLog(@"nil is %p",nil);
NSLog(@"Nil is %p",Nil);
NSLog(@"Null is %p",NULL);
NSLog(@"nil is %@",nil);
NSLog(@"NSNULL is  %@",kCFNull);

nil is 0x0**
Nil is 0x0**
Null is 0x0**
nil is (null)**
NSNULL is  <null>**
上一篇 下一篇

猜你喜欢

热点阅读