I'm trying to init an NSCalendar with a value that is variable like below:
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:jam.calenderType];
But calendar always returns nil
I know that:
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierIslamic];
And:
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
both work fine but I want the value to be jam.calenderType which is an NSString that has the value of @"NSCalendarIdentifierIslamic" or @"NSCalendarIdentifierGregorian"
Your problem comes from the way you store the calendar identifier in your variable. When you wrote
@"NSCalendarIdentifierIslamic"it simply means a string with that characters, and not the string that theNSCalendarIdentifierIslamicidentifier points to.So simply set your variable
jam.calenderType = NSCalendarIdentifierIslamic;orjam.calenderType = NSCalendarIdentifierGregorian;and it would work fine.Another easy solution would have been to make your
calenderTypeas aBOOLorintand then based on it's value to choseNSCalendarIdentifierIslamicorNSCalendarIdentifierGregorianin your calendar init.