【发布时间】:2016-09-06 08:13:47
【问题描述】:
在 Objective-C (OS X 10.9) 中,我编写了一个 NSDictionary 以使用 [MyDict writeToFile:SavePath atomically:YES]; 归档。我用MyDict = [NSDictionary dictionaryWithContentsOfFile:filePath];恢复字典
但是我随后遇到包含 NSCalendarDate 对象的键不再是 NSCalendarDate,而是 __NSTaggedDate。这给了我以下错误:
2016-09-06 09:19:39.957 MyProject[720:303] -[__NSTaggedDate yearOfCommonEra]: unrecognized selector sent to instance 0x41bd7801f000000d
关于代码行:
if([AtTansaction.TransactionDate yearOfCommonEra] == DataArray[cnt].year)
那么如何重构一个 NSCalendarDate 呢? NSTaggedDate 是什么?
【问题讨论】:
-
你在哪里找到了名为 NSCalendarDate 的类?它在iOS api中吗?可能您正在尝试提及 NSDate。你真的不需要关心 NSTaggedDate 是什么。它可能是类的一些内部表示。
-
@Sandeep 它被标记为 OS X,
NSCalendarDate继承自NSDate。 -
NSCalendarDate已弃用。 强烈建议不要使用 NSCalendarDate。对于日历计算,您应该使用 NSCalendar、NSDate 和 NSDateComponents 的合适组合,如 Cocoa 的日期和时间编程主题中的日历中所述
标签: objective-c nsdictionary osx-mavericks