使用变量 属性 值作为 NSCalendarIdentifier return nil
Using a variable property value for NSCalendarIdentifier return nil
我正在尝试使用如下可变值初始化 NSCalendar:
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:jam.calenderType];
但是calendar
总是returnsnil
我知道:
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
在你的日历初始化中。
我正在尝试使用如下可变值初始化 NSCalendar:
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:jam.calenderType];
但是calendar
总是returnsnil
我知道:
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
在你的日历初始化中。