使用NSCalendarIdentifier的变量属性值返回nil

时间:2015-06-19 11:24:57

标签: ios nsdate nscalendar

我正在尝试使用如下变量的值初始化NSCalendar:

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:jam.calenderType];

calendar始终返回nil

我知道:

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierIslamic];

并且:

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

两者都运行正常,但我希望值jam.calenderTypeNSString,其值为@"NSCalendarIdentifierIslamic"@"NSCalendarIdentifierGregorian"

1 个答案:

答案 0 :(得分:1)

您的问题来自于将日历标识符存储在变量中的方式。当您编写@"NSCalendarIdentifierIslamic"时,它只是表示包含该字符的字符串,而不是NSCalendarIdentifierIslamic标识符指向的字符串。

因此,只需设置变量jam.calenderType = NSCalendarIdentifierIslamic;jam.calenderType = NSCalendarIdentifierGregorian;,它就能正常工作。

另一个简单的解决方案是将您的calenderType设为BOOLint,然后根据其值选择NSCalendarIdentifierIslamic或{{ 1}}在您的日历初始化。