我正在尝试使用如下可变值初始化 NSCalendar:
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:jam.calenderType];
但是calendar
总是返回nil
我知道:
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierIslamic];
并且:
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
两者都工作正常,但我希望该值为jam.calenderType
,它是一个NSString
,其值为@"NSCalendarIdentifierIslamic"
或 @"NSCalendarIdentifierGregorian"
最佳答案
您的问题来自您在变量中存储日历标识符的方式。当您编写 @"NSCalendarIdentifierIslamic"
时,它只是表示包含这些字符的字符串,而不是 NSCalendarIdentifierIslamic
标识符指向的字符串。
因此只需设置您的变量 jam.calenderType = NSCalendarIdentifierIslamic;
或 jam.calenderType = NSCalendarIdentifierGregorian;
即可正常工作。
另一个简单的解决方案是将您的 calenderType
设置为 BOOL
或 int
,然后根据它的值选择 日历初始化中的 NSCalendarIdentifierIslamic
或 NSCalendarIdentifierGregorian
。
关于ios - 为 NSCalendarIdentifier 返回 nil 使用变量属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30936955/