int myInt = 25; Nsstring *myString = [[Nsstring alloc] initWithFormat:@"%d",myInt]; ... [myString release];
编辑:
感谢您的回答,我应该在问题中更清楚一点,我特别感兴趣在iPhone上使用它.正如@chuck所说,我可以使用一种方便的方法,但我的印象是我应该尽可能避免这些因为内存/性能原因而在iPhone上使用.我可能错了.
加里
解决方法
I Could use a convenience method,but I was under the impression that I should be avoiding these where possible on the iPhone for memory / performance reasons.
“性能原因”是自动释放对象的成本.这曾经是iPhone的昂贵之处. (我不知道它是否仍然存在.)唯一的选择是明确地分配它并自己释放它.正如其他人所指出的那样,如果没有分配它就不能拥有一个对象,并且如果不释放它就不能分配它.你需要以这种或那种方式发生这两件事.
记忆的原因很简单,一个自动释放的对象会持续更长时间,直到自动释放到期为止.自动释放许多对象,你的内存使用量会增加;将它堆得足够高,SpringBoard会告诉你的应用程序将其关闭(和/或只是杀死它).解决方案是使对象不会持续这么长时间,这意味着(1)在已知批次对象周围创建和排出自己的自动释放池,或者(2)自己管理对象的生命周期(即分配和释放它们) .
后一个原因不是特定于iPhone – 它也影响了Mac,虽然我们的上限更高:Macs有更多的短期内存,加上虚拟内存,所以我们可以摆脱更多的内存使用.即便如此,我们的Mac程序员也应尽量不浪费内存,部分原因是因为分页地狱破坏了一天,部分原因是如果我们的应用程序在活动监视器列表中位置过高,我们将收到用户的电子邮件.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。