gpt4 book ai didi

ios - 启动参数(NSDoubleLocalizedStrings、NSShowNonLocalizedStrings)不起作用

转载 作者:搜寻专家 更新时间:2023-10-31 22:42:18 27 4
gpt4 key购买 nike

我正在尝试使用诸如 NSDoubleLocalizedStringsNSShowNonLocalizedStrings 之类的启动参数来测试我的 Objective-C 项目中的本地化。出于某种原因,我无法让他们都工作。我尝试在启动时设置参数和方案设置中的选项:enter image description here enter image description here我还检查了 NSUserDefaults 键,它们都是 YES。但是争论仍然不起作用。

为了确保它不是 XCode 错误,我在 Objective-C 和 Swift 上创建了一个全新的单 View 项目,在 View 上有一个标签。这两个项目都有空的 Localizable.strings 文件,这些项目中的代码如下:

@interface ViewController ()
@property (nonatomic, strong) IBOutlet UILabel *label;
@end

@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.label.text = NSLocalizedString(@"Some text", nil);
}
@end

class ViewController: UIViewController {
@IBOutlet var label: UILabel!

override func viewDidLoad() {
super.viewDidLoad()
label.text = NSLocalizedString("Some text", comment: "")
}
}

结果是这样的:

enter image description here

下面是问题:

1) 启动参数在我的 Objective-C 项目中不起作用的原因可能是什么?

2) 为什么 NSDoubleLocalizedStrings 参数在 Swift 中不起作用?

最佳答案

我花了几天时间调查并逐渐删除我的 Objective-C 项目中的所有文件和框架,我发现原因在 AFNetworking 库中。问题描述 here .如果您想在项目中使用 AFNetworking 并调试本地化问题,您可以将这些行添加到 application: didFinishLaunchingWithOptions:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:YES forKey:@"NSDoubleLocalizedStrings"];
[defaults setBool:YES forKey:@"NSShowNonLocalizedStrings"];
[defaults synchronize];

第二次 启动应用程序时,您会看到这些启动参数起作用。

关于为什么 NSDoubleLocalizedStrings 参数在 Swift 中不起作用的第二个问题的答案是它可能是 XCode 中的一个错误。它可能与 Swift 不支持的宏相关联,而 NSLocalizedString 实际上是一个宏。因此我在 radar 上创建了一个错误.

关于ios - 启动参数(NSDoubleLocalizedStrings、NSShowNonLocalizedStrings)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44228367/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com