Ios 在何处使用参数定义长消息字符串
我想在iOS应用程序中显示一些带有参数的较长消息(>100个字符)。它们将出现在应用程序的不同部分,并包含有关某些进程状态的信息,例如Ios 在何处使用参数定义长消息字符串,ios,string,Ios,String,我想在iOS应用程序中显示一些带有参数的较长消息(>100个字符)。它们将出现在应用程序的不同部分,并包含有关某些进程状态的信息,例如 [_labelProgressInformation setText:[NSString stringWithFormat:@"%@ is busy.",currentProcess.Name]]; [_labelUserInformation setText:[NSString stringWithFormat:@"Please wait for %@ to
[_labelProgressInformation setText:[NSString stringWithFormat:@"%@ is busy.",currentProcess.Name]];
[_labelUserInformation setText:[NSString stringWithFormat:@"Please wait for %@ to finish. Make sure that... blah blah blah with instructions",currentProcess.Name]];
问题是我应该在哪里定义它们?我希望在很多地方避免硬编码。理想情况下,我希望将它们放在一个文件中,以便在必要时可以快速编辑它们。我该怎么做?定义需要参数的消息的正确方法是什么?为此,请选择宏
只需创建新的头文件(新文件->源->头文件)
定义宏,如
#define PROGESSTEXT(text) ([NSString stringWithFormat:@"%@ is busy.",text])
然后在需要的地方使用它,比如
PROGESSTEXT(@"Helloooooo")
NSLog(@"%@",PROGESSTEXT(@"Helloooooo"));
结果:Helloooo正忙。解决此问题的最佳方法,同时考虑到应用程序的潜在多语言使用,是使用本地化的
.strings
文件。这样,您就可以使用一个键和预定义的Xcode宏NSLocalizedString(,)
引用相应的字符串值,该宏将该键作为NSString
和该特定字符串的可选注释
请注意,如果您只提供一种语言的应用程序,这种方法也会带来回报,它通常被认为是最佳实践
使用此功能的示例如下所示:
您有一个本地化文件:
可本地化。字符串
(英文)带有条目:
"hello" = "Hello";
"hello_my_name_is" = "Hello, my name is %@";
然后,在应用程序中,无论您想在何处使用该字符串,都可以执行以下操作:
helloLabel.text = NSLocalizedString(@"hello", nil); // will write "Hello"
nameLabel.text = [NSString stringWithFormat:NSLocalizedString(@"hello_my_name_is", nil), @"John"]; // will write "Hello, my name is John"
您可以阅读更多关于本地化或关注的内容。谢谢,这正是我想要的。谢谢您的回复,但我认为nburk的方法更好一些。