NSLocalizedString - 格式不是字符串文字而没有格式参数(xcode)

Sib*_*ian 3 iphone objective-c foundation ios xcode4

执行以下操作时,我收到"format not a string ..."消息:

NSString* string1 = [[NSString alloc] initWithFormat:NSLocalizedString(@"Update Now", @"Update Now Item")];
NSString* string2 = [[NSString alloc] initWithFormat:NSLocalizedString(@"Register", @"Register Now")];
Run Code Online (Sandbox Code Playgroud)

它工作正常,即应用程序不会在设备或模拟器上崩溃,本地化的文本也显示正常.

我试图理解为什么我收到这个特定的错误信息.据我所知,这就是你在Objective C中使用本地化字符串的方式.

Mar*_*rov 6

使用本地化字符串的最简单方法是:

NSString*myString = NSLocalizedString(@"立即更新",@"立即更新");

现在记住myString是自动释放的 - 你通常需要一个字符串.

在示例中,您保留字符串(因为您使用initWithFormat).猜测"立即更新"等将在用户UI中显示,可能通过UILabel显示您不需要保留字符串 - 当您将字符串分配给UILabel时,它将自动保留它(因为文本存储在保留的财产)