真心求教一个iOS堆栈的有关问题
发布时间:2010-05-30 01:27:02 文章来源:www.iduyao.cn 采编人员:星星草
真心求教一个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操作跑哪去了呢?
------解决方案--------------------
没有区别.
NSString本身没有什么特殊的,这里的问题在于使用常量字符串去初始化一个NSString,而系统会对常量字符串进行优化,所有引用同一个常量字符串的NSString共享同一块内存,这块内存位于常量区,引用计数为7fffffff,表示不使用通常的引用计数管理机制,不会释放.
------解决方案--------------------
@"string" 是常量,所以,它就没有开辟新的空间,仅是一个指针。initWithFormat 是要开辟空间滴⋯⋯
------解决方案--------------------
alloc根据apple讲,是一个变量声明的产生的过程,并没有跟C一样分配空间。
1,NSString* str = [[NSString alloc] initWithString:@"string"];
2,NSString* str = [[NSString alloc] initWithFormat:@"%@",@"string"];
3,NSString* str = [NSString stringWithString:@"string"];
4,NSString* str = @"string";
效果也不是一样滴
慢慢你会明白的。前两个跟后两个区别大,大多数情况下,1与2、3与4可以混用。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
图片拾取器问题
用图片拾取器方法除了能拾取相册里面的图片外,能不能拾取其它文件里面非照片的图像啊,如果能,要怎么做
------解决...
-
请教个问题。。很弱智,不要嘲笑。。
请问mac osx 10.6下开发出来的程序在mac osx 10.5下可以正常使用么?会不会有些库的问题?
客户要...
-
一个数组可以放UIButton,那怎么调用这些元素呢,[array objectatindex i]不好用]
UIButton,那怎么调用这些元素呢,[array objectatinde...
-
关于imageView显示图片的问题
我现在需要在一个imageView中现在两张图片,这两张是重叠显示的,在android中,我这么做到的,imageView1.s...
-
如何在软件中嵌套ppt播放功能
如何在软件中嵌套ppt播放功能 不知道这个能实现吗
------解决方案--------------------
可以,...
-
objectivc-c
请问下自学obj-c要看哪本书比较好?
linux下可以运行obj-c的程序吗?
mac软件开发除了obj-c还需要什么别的吗?
------解...
-
怎么实现iphone客户端软件与服务器端的数据交互?
怎么实现iphone客户端软件与服务器端的数据交互?
------解决方案---------------...
-
求IOS微信界面实现思路
如题,请大神们指点一二,非常感谢!
------解决方案--------------------
问题过于笼统,无法作答
------解决...
-
给黑苹果搞个Navicat for SQLite 求个下载地址
给黑苹果搞个Navicat for SQLite 求个下载地址 谢谢
------解决方案---------...
-
iphone中按提示弄音频接收, 在线等
关于iphone中的音频接收( Streaming Live or On-Demand Video from IIS7 to iOS Devices (iPhon...