Bri*_*tle 2 iphone math cocoa objective-c
我有一些C#代码,我正在转换为Objective-C.在C#中我会调用Math.Log().我正在慢慢地了解到有些人坚持使用C函数/类型,并且当他们需要与Cocoa互操作时才使用NSNumber等.
ObjC/Cocoa是否有等价物,或者我需要进入C才能做到这一点?我需要我的代码尽可能准确,因为它是计算器的一部分.
如果这有什么不同,这个代码需要在iPhone上运行.
NSNumber是用于存储在有用NSArray或NSDictionary,或在核心数据存储.
您不希望NSNumber用于算术,仅当您需要在某处存储该数字时才能与基础或核心数据类一起使用.
这是因为你必须不断地转换之间NSNumber和原始类型,如int,double,long执行算术运算时,等等.使用基本类型的操作达到所需的准确度,然后创建一个NSNumber实例(如果确实需要).
尽管如此,在任何Cocoa/Cocoa Touch应用程序中使用C数学库都是相当简单的:
#import <math.h>
...
double _param = 7.389;
NSNumber *_result = [NSNumber numberWithDouble:log(_param)];
Run Code Online (Sandbox Code Playgroud)
这是同一个故事NSDecimalNumber,它是以下的子类NSNumber:
如果您不需要将十进制数字视为对象,也可以考虑使用C接口,也就是说,如果您不需要将它们存储在面向对象的集合中,如NSArray或NSDictionary的实例.如果您需要最高效率,也可以考虑C接口.C接口比NSDecimalNumber类更快并且使用更少的内存.
| 归档时间: |
|
| 查看次数: |
2189 次 |
| 最近记录: |