真心求教一个iOS堆栈的问题
请问iOS的堆栈概念 和windows的有什么区别么?
另外
- (void)fun
{
NSString* str = [[NSString alloc] initWithString:@"string"];
NSLog(@"%d", [str retainCount]);
}
可以看到 str的计数器为-1
而把initWithString换成initWithFormat 计数器就是1
同事说的 NSString是很特殊的 没有计数器概念 没有retain、assign操作,
不管有没有alloc,它在内存中的存放位置 只和传给他的值有关系,
initWithString 就是放在常量区
是这样的么?
那这个alloc操作跑哪去了呢?