【发布时间】:2010-09-30 20:29:07
【问题描述】:
在我的 iPhone 应用程序中,我使用 NSDecimalNumber 来存储一些货币汇率值。
我在第一次启动应用程序时从网络上提取数据,然后在它们过时时再次提取数据,并将它们存储在 NSDictionary 中;然后我使用writeToFile:atomically:。
第一次启动应用程序时,我的汇率转换方法可以正常工作。然而,当我第二次启动该应用程序时,费率以-(NSDictionary*) initWithContentsOfFile: 加载时,转换方法停止工作,我得到了奇怪的结果。
我在犯罪方法中使用断点进行了一些调试,发现费率数据被视为NSCFNumber,而不是NSDecimalNumber。因此,initWithContentsOfFile 似乎没有为我的对象分配正确的类。作为记录,这些对象的实际值,如description方法所示,对应于期望的速率值。
我还检查了writeToFile:atomically:生成的plist文件,发现rates存储为real;我想知道这是否是正确的类型。
知道发生了什么吗?
提前致谢,
大卫
【问题讨论】:
标签: iphone objective-c cocoa cocoa-touch currency