-1

我想做两个相同的应用程序。两个应用程序之间的区别是徽标和名称(以及联系我们页面)。

考虑两个名称是名称 1名称 2,我想在任何地方使用它们。假设下面是我的文字。

Welcome to name_here

name_here is founded in 1987. name_here is blah blah.. name_here is blah blah... 

在这里,我想为每个应用程序分别用 Name 1 和 Name 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);

就是这样...非常感谢...

4

8 回答 8

1

您可以在应用程序的 .plist 中创建一个字段,例如 appName,并根据应用程序将该变量的值设置为 Name1 或 Name2。

然后,您唯一需要做的就是从 plist 中检索该变量。

于 2013-06-26T12:41:30.250 回答
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];
于 2013-06-26T12:53:03.293 回答
0

一个解决方案可能是使用本地化字符串。

定义一个常数为:

#define MY_NAME   NSLocalizedStringFromTable(@"name", @"Localizable", nil)

然后添加一个 Localizable.strings 文件,在其中写入:

"name" = "name1" 

或者

"name" = "name2"

(取决于您的应用程序)

于 2013-06-26T12:44:20.233 回答
0

您应该将变量数据(在本例中为 NAME 变量)存储在外部文件中,以便您可以为每个应用程序配置它。它可能是与应用程序捆绑在一起的 JSON 或 plist 文件,或者您可以通过 Web 服务等获取它。

于 2013-06-26T12:44:22.070 回答
0

我的建议是您将名称声明为常量,并且无论差异出现在哪里,您都替换变量而不是硬编码名称。

#define name @"Name"

NSString *str = [NSString stringWithFormat:@"Welcome to %@. %@ is founded in 1987. %@ is this and that..."],name;

在您的其他应用程序中,您将 name 定义为其他字符串,如下所示。

#define name @"SomeOtherName"

您可以对需要重用的徽标或其他资源进行命名。其实最好保留一个类,只是为了存放这些名字和常量。所以如果你做对了,你所要做的就是删除这个类文件并添加另一个同名的类文件,其中包含相同的常量,但这些常量中存储的值不同。

于 2013-06-26T12:46:09.603 回答
0

您可以为每个应用程序定义一个预处理器,例如 APP1 和 APP2。然后,无论您在哪里设置 name_here 的字符串,都可以粘贴以下代码:

#ifdef APP1
name_here = @"Company 1";
#else
name_here = @"Company 2";
于 2013-06-26T12:46:25.863 回答
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];

谢谢,

于 2013-06-26T12:40:56.797 回答
0

用户看到的字符串应该在“Localizable.strings”之类的文件中。

然后使用:

self.title = NSLocalizedStringFromTable(@"App Name", @"App", @"");

本地化还允许使用占位符。

于 2013-06-26T12:52:15.450 回答