din*_*ngh 5 xcode objective-c ios
我有这行代码,并试图弄清楚我编写它的方式的优缺点.我只是想设置一个浮动值的标签,两者都工作....只是不知道哪个更好......
self.display.text=[[NSNumber numberWithFloat:32.445] stringValue];
Run Code Online (Sandbox Code Playgroud)
说有什么不同吗?
NSNumber *number = [[NSNumber alloc]initWithFloat:32.445];
self.display.text = [number stringValue];
Run Code Online (Sandbox Code Playgroud)
嗯 - 我知道必须有区别 - 只是不确定它会是什么.好像第一个更像是一个包装器(如果有意义的话)?
谢谢!!!
[NSNumber numberWithFloat:32.445]
Run Code Online (Sandbox Code Playgroud)
相当于:
[[[NSNumber alloc] initWithFloat:32.445] autorelease]
Run Code Online (Sandbox Code Playgroud)
在手动参考计数模式.在ARC或GC模式下,您可以将其视为等效于:
[[NSNumber alloc] initWithFloat:32.445]
Run Code Online (Sandbox Code Playgroud)
您可能获得的唯一好处是尝试autorelease在MRC模式下避免呼叫并将其替换为release呼叫.