微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

objective-c – int / float到NSString而不使用alloc?

无论如何在不使用alloc和后续版本的情况下将int(或float)数字转换为Nsstring对象?

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 举报,一经查实,本站将立刻删除。

相关推荐