我正在尝试将 NSString 中的月份名称替换为其两位数字值的名称,例如“January”=>“01”、“February”=>“02”。我使用的方法如下:
if (mois==@"january") { mois=@"01";}
if (mois==@"February") { mois=@"02";}
...但它不工作。我该如何进行这个替换?
我正在尝试将 NSString 中的月份名称替换为其两位数字值的名称,例如“January”=>“01”、“February”=>“02”。我使用的方法如下:
if (mois==@"january") { mois=@"01";}
if (mois==@"February") { mois=@"02";}
...但它不工作。我该如何进行这个替换?
if ([mois isEqualToString:@"january"])
就是你要找的。
您所做的是比较指针而不是存储在其中的值,这就是为什么 Objective-C 中的几个类都有这些isEqualTo:
方法的原因。
用这个
if ([mois isEqualToString:@"january"]) { mois=@"01";}
if ([mois isEqualToString:@"February"]) { mois=@"02";}
你应该试试[mois isEqualToString:@"january"]
使用 iOS 提供的 Date 函数。看看 NSDate 和 NSDateFormatter
通过使用日期函数,您可以让 SDK 将月份名称转换为月份代码。这也意味着您不必担心月份是否使用不同的语言或大小写不同,或者是否使用“Jan”而不是“January”等。
NSString 是一个对象,因此你不能使用 mois==@"january"。您必须使用方法 isEqualToString:(NSString *)aString。
尼古拉。
NSStrings 是不可变的,不是吗?我认为您要么必须使用 NSMutableString,要么使用 mois=[NSString stringWithString:@"01"];
希望这会有所帮助,内森