无论如何,我是一个非常绿色的 nubie,我正在完成一个教程,该教程将引导我使用 NSLocale 类来获取当地货币,如下所示:
NSLocale *here = [NSLocale currentLocale];
NSString *currency = [here objectForKey:NSLocaleCountryCode];
NSLog(@"Money is %@", currency);
所以,我知道我正在创建一个名为“here”的 NSLocale 类的实例,然后我向“here”对象发送一条消息,询问 objectForKey,并将结果返回到名为“currency”的 NSString 中。最后,我使用 NSLog 打印货币值。
好的,这是我的问题,然后我查看了 NSLocale 类上还有哪些其他方法,我发现了一个名为“preferredLanguages”的方法,它返回了一组首选语言。所以我虽然我会调用该方法,然后将其打印到日志中,只是为了微笑和帮助我学习。离开上面的例子,我想我会这样称呼它。从上面的代码中我已经有一个名为“here”的 NSLocale 类的实例开始,我认为我只需要以下内容(我重复上面的三行只是为了便于在这里阅读。)
NSLocale *here = [NSLocale currentLocale];
NSString *currency = [here objectForKey:NSLocaleCountryCode];
NSLog(@"Money is %@", currency);
NSArray *prefLangs = [here preferredLanguages];
NSLog(@"Preferred Languages are: %@", prefLangs);
但这不起作用,我收到一条错误消息,上面写着“'NSLocale' 没有可见的@interface 声明选择器'preferredLanguages'
我发现我必须这样做:
NSLocale *here = [NSLocale currentLocale];
NSString *currency = [here objectForKey:NSLocaleCountryCode];
NSLog(@"Money is %@", currency);
NSArray *prefLangs = [NSLocale preferredLanguages];
NSLog(@"Preferred Languages are: %@", prefLangs);
我只是不明白为什么我必须调用这样的方法:[NSLocale preferredLanguages],而不是[这里的preferredLanguages]。上面已经创建了“这里”的实例。有人可以解释一下。