从服务器下载可本地化的“字符串”文件

时间:2013-12-18 02:14:54

标签: ios objective-c nsbundle

我希望能够在我的iOS应用程序中添加/编辑语言。因此,我遵循this question中的方法,然而无法使其工作。

这就是我所做的:

我创建了一个文件夹myFolder,并将本地化文件夹(en.lproj,...)从我的XCode项目拖到该文件夹​​中。然后我将其重命名为myFolder.bundle。 然后我尝试从如下的URL加载整个包:

NSURL *url = [NSURL URLWithString:@"http://192.168.0.12/language_plists/Localizable.bundle"];
NSBundle *bundle = [[NSBundle alloc] initWithURL:url];

会抛出以下错误:

  
    

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'*** - [NSBundle initWithURL:]:非文件URL参数'

  

2 个答案:

答案 0 :(得分:2)

显然它不能使用非文件URL,因为NSBundle只处理文件URL。最好是下载,你必须下载到Cache或Document位置,你必须明确地这样做。

此外,您需要重新提交应用程序以获得本地化的许多好处,因为您的App Store条目仅包含可在下载之前进行测试的语言。

答案 1 :(得分:1)

您可以选择此github

在您的文档目录中下载您的json文件并访问其路径。

//Download the app from server and save it to Document directory
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [[paths lastObject] stringByAppendingPathComponent:@"strings.json"];