常量和非常量NSString
对象确实有不同的类型,如下所示,但是我不确定这是区分需要翻译的字符串和不需要翻译的字符串的特别好的方法。
您可能应该使用 Apple 自己的Internationalization Support,但我个人将使用Delicious Library作者(其中一位)记录的方法,here。
#import <Foundation/Foundation.h>
void foo(NSString *s) {
NSLog(@"Type of '%@' is %@", s, NSStringFromClass([s class]));
}
int main(int argc, const char **argv) {
@autoreleasepool {
NSString *s1 = [NSString stringWithFormat:@"A %@ string", @"formatted"];
NSString *s2 = @"A constant string";
foo(s1);
foo(s2);
}
return 0;
}
2013-09-17 16:34:05.667 test[9866:707] Type of 'A formatted string' is __NSCFString
2013-09-17 16:34:05.668 test[9866:707] Type of 'A constant string' is __NSCFConstantString