Ios 无法获取带有“@”的月份短符号;“嗯”;

Ios 无法获取带有“@”的月份短符号;“嗯”;,ios,nsdateformatter,Ios,Nsdateformatter,我看了,还有,但我的结果还是不正确 我的代码看起来像 + (NSString *)getMonthName:(NSInteger)monthNumber { if (monthNumber == 0) { return @""; } NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateStyle:NSDateFormatterMediumSty

我看了,还有,但我的结果还是不正确

我的代码看起来像

+ (NSString *)getMonthName:(NSInteger)monthNumber {
    if (monthNumber == 0) {
        return @"";
    }
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    [formatter setDateFormat:@"MMM"];
    NSString *monthName = [formatter monthSymbols][(NSUInteger) (monthNumber - 1)];
    NSLog(@"monthNumber-%d, monthName-%@", monthNumber, monthName);
    return monthName;
}
它被称为

self.monthHeaderLabel.text = [NSString stringWithFormat:@"%@", [Helper getMonthName:self.transactionsModel.month]];
当我运行应用程序时,我看到日志为

2015-01-10 13:02:17.577 myapp-ios[19175:60b] monthNumber-1, monthName-January 
为什么仍然不正确?我做错了什么


谢谢

根据@rmaddy的评论,这就是我所要做的一切

NSString *monthName = [formatter shortMonthSymbols][(NSUInteger) (monthNumber - 1)];
结果很好

2015-01-10 13:23:02.223 myapp-ios[19183:60b] monthNumber-1, monthName-Jan 

您可以使用shortMonthSymbols代替monthSymbols

+ (NSString *)getMonthName:(NSInteger)monthNumber {
    if (monthNumber == 0) {
        return @"";
    }
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

NSString *monthName = [formatter shortMonthSymbols][(NSUInteger) (monthNumber - 1)];
NSLog(@"monthNumber-%d, monthName-%@", monthNumber, monthName);
    return monthName;
}

monthSymbols
setDateFormat:
彼此无关。为什么不使用
shortMonthSymbols
?这些是您可以使用的可用月份符号:顺便说一句-无需强制转换
monthNumber-1
的结果。