ios - NSNumber numberWithFloat 与 Init 和 alloc

标签 ios objective-c xcode

我有这行代码,我想弄清楚我编写它的方式的优缺点。我只是想将标签设置为浮点值并且两者都有效......只是不知道哪个更好......

self.display.text=[[NSNumber numberWithFloat:32.445] stringValue];

有什么区别吗

NSNumber *number = [[NSNumber alloc]initWithFloat:32.445];
self.display.text = [number stringValue];

嗯 - 我知道肯定有区别 - 只是不确定会是什么。似乎第一个更像是一个包装器(如果这有意义的话)?

谢谢!!!

最佳答案

[NSNumber numberWithFloat:32.445]

相当于:

[[[NSNumber alloc] initWithFloat:32.445] autorelease]

在手动引用计数模式下。在 ARC 或 GC 模式下,你可以认为它等同于:

[[NSNumber alloc] initWithFloat:32.445]

您可能获得的唯一好处是尽量避免在 MRC 模式下调用 autorelease 并将其替换为 release 调用。

关于ios - NSNumber numberWithFloat 与 Init 和 alloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9073367/

相关文章:

objective-c - 将参数传递给 Objective C 中的 JSON Web 服务

ios - 为iPhone5S(arm64)编译Poco库

ios - 使用不可变类分配任何可变对象,反之亦然

iOS:首次运行应用程序期间的 NSUserDefaults?

iphone - 在iOS中将GMT转换为IST

Xcode 9 beta 2 Storyboard充满错误

iOS 应用程序在 Debug模式下崩溃,在 Release模式下工作

xml - iOS:下载、解包、解码和解析大文件

ios - 构建 XCTest UI 测试套件的最佳实践是什么?

iphone 为什么他使用 valueForKeyPath