我想制作两个相同的应用程序。两个应用程序之间的区别是徽标和名称(并与我们联系页面)。
考虑两个名称名称1 & 名称2 ,我想在任何地方使用它们。让我们说下面是我的文字。
Welcome to name_here
name_here is founded in 1987. name_here is blah blah.. name_here is blah blah...
在这里,我想分别为每个应用程序替换名称1和名称2的name_here。
知道如何完成这项工作吗?
这就是我所做的。
将plist文件创建为“AllInOne.plist”
在ViewDidLoad中我有
NSString *documentsDirectory = [[NSBundle mainBundle] resourcePath];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"AllInOne.plist"];
NSMutableDictionary *savedStock = [[NSMutableDictionary alloc] initWithContentsOfFile: path];
NSString *value1;
value1 = [savedStock objectForKey:@"lab_name"];
NSLog(@"text is ==== %@", value1);
就是这样......非常感谢...
答案 0 :(得分:1)
您可以在应用的.plist中创建一个字段,例如appName,并根据应用程序将该变量的值设置为Name1或Name2。
然后,您唯一需要做的就是从plist中检索该变量。
答案 1 :(得分:0)
请尝试以下代码。
#define NAME1 @"Name1"
#define NAME2 @"Name2"
NSString *str = [NSString stringWithFormat:@"Welcome to %@ %@ is founded in 1987. %@ is blah blah.. %@ is blah blah...",NAME1,NAME1,NAME1,NAME1];
谢谢,
答案 2 :(得分:0)
解决方案可能是使用本地化字符串。
将常量定义为:
#define MY_NAME NSLocalizedStringFromTable(@"name", @"Localizable", nil)
然后添加一个Localizable.strings文件,在其中写入:
"name" = "name1"
或
"name" = "name2"
(取决于您的应用)
答案 3 :(得分:0)
您应该将变量数据(在本例中为NAME变量)存储在外部文件中,以便您可以按应用程序对其进行配置。它可能是与应用程序捆绑在一起的JSON或plist文件,或者您可以通过Web服务等获取它。
答案 4 :(得分:0)
我的建议是,您将名称声明为常量,无论在何处出现差异,您都要替换变量而不是硬编码名称。
#define name @"Name"
NSString *str = [NSString stringWithFormat:@"Welcome to %@. %@ is founded in 1987. %@ is this and that..."],name;
在您的其他应用中,您将名称定义为其他字符串,如下所示。
#define name @"SomeOtherName"
您可以使用命名徽标或需要重复使用的其他资源执行相同的操作。事实上,最好保留一个类,只是为了存储这些名称和常量。因此,如果你做得对,你所要做的就是删除这个类文件,并添加另一个具有相同名称但含有相同常量但在这些常量中存储不同值的类文件。
答案 5 :(得分:0)
您可以为每个应用程序定义预处理器,例如APP1和APP2。 然后,无论您为name_here设置字符串,都可以使用以下代码:
#ifdef APP1
name_here = @"Company 1";
#else
name_here = @"Company 2";
答案 6 :(得分:0)
用户看到的字符串应该位于“Localizable.strings”之类的文件中。
然后使用:
self.title = NSLocalizedStringFromTable(@“App Name”,@“App”,@“”);
本地化也允许占位符。
答案 7 :(得分:0)
我的答案不是很好但很有效:
NSString * string = @"Welcome to name_here, name_here is founded in 1987. name_here is blah blah.. name_here is blah blah... ";
#if APP1
string = [string stringByReplacingOccurrencesOfString:@"name_here" withString:APP1Text];
#else
string = [string stringByReplacingOccurrencesOfString:@"name_here" withString:APP2Text];