请问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操作跑哪去了呢?
- (void)fun
{
NSString* str = [[NSString alloc] initWithString:@"string"];
NSLog(@"%d", [str retainCount]);
}
可以看到 str的计数器为-1而把initWithString换成initWithFormat 计数器就是1同事说的 NSString是很特殊的 没有计数器概念 没有retain、assign操作,
不管有没有alloc,它在内存中的存放位置 只和传给他的值有关系,
initWithString 就是放在常量区
是这样的么?
那这个alloc操作跑哪去了呢?
解决方案 »
- oc中代理的具体实现步骤和格式是啥?
- Security.framework 对java服务端证书验签问题
- oc 又没人总结全面一点的知识点
- 问个很不起眼,但是可能你不知道的问题
- 3G网络问题,服务器发送数据卡包!
- ios开发,自己做一个日历应用该怎么做,感觉无从下手,求指教
- iphone 开发的大神们,用于iphone开发的模拟器要怎么才能获取来电的号码?急求
- iOS中,子view可以响应手势,为啥它的父视图添加手势没办法识别手势事件
- 求ipad2的7以下的SHSH。。。。I4用的
- mac webview与js交互的问题
- 请教一个iphone平台下关于图片压缩的问题
- 创建线程时候中断在创建线程那个地方了
NSString本身没有什么特殊的,这里的问题在于使用常量字符串去初始化一个NSString,而系统会对常量字符串进行优化,所有引用同一个常量字符串的NSString共享同一块内存,这块内存位于常量区,引用计数为7fffffff,表示不使用通常的引用计数管理机制,不会释放.
2,NSString* str = [[NSString alloc] initWithFormat:@"%@",@"string"];3,NSString* str = [NSString stringWithString:@"string"];
4,NSString* str = @"string";
效果也不是一样滴
慢慢你会明白的。前两个跟后两个区别大,大多数情况下,1与2、3与4可以混用。