в чем разница между [NSLocale preferredLanguages] и [[NSUserDefaults standardUserDefaults] objectForKey:@»AppleLanguages»]?

#objective-c #xcode #cocoa

#objective-c #xcode #какао

Вопрос:

В чем разница между [NSLocale preferredLanguages] и [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] ?

  1. Я запутался в описании документации Apple и не могу четко понять, кто может рассказать мне об их различиях? потому что я получаю от них одни и те же данные.
  2. какой из них мы должны использовать в разных случаях?

Ответ №1:

Вы должны использовать [NSLocale preferredLanguages] , использовать [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] , если вы поддерживаете Mac OS X 10.4 или более раннюю версию.

Ответ №2:

Оба предназначены для возврата одного и того же, первый просто удобнее.

В документации Apple говорится: для [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"]

Возвращаемый массив содержит языки, связанные с ключом AppleLanguages, в предпочтительном порядке пользователя.

В документации Apple говорится: для [NSLocale preferredLanguages]

Порядок языковых предпочтений пользователя в виде массива объектов NSString,

Комментарии:

1. какой из них мы должны использовать в разных случаях?

2. Что, если оба они возвращают nil, как в моем случае?