2010-10-20 31 views
5

Tôi cố gắng để quyết định xem người dùng Region/cài đặt Locale xác nhận việc sử dụng các giá trị Metric (trong trường hợp này nếu kg hoặc lb nên được nối thêm).NSLocaleUsesMetricSystem luôn YES trên iPad

Tôi đang chạy 3,2 trên iPad và trên trình mô phỏng (Xcode 3.2.4). Tôi đã cố gắng ra một vài thiết lập khu vực khác nhau nhưng tôi chỉ đơn giản là không thể làm cho nó trở NO cho NSLocaleUsesMetricSystem

NSLocale *locale = [NSLocale systemLocale]; 
BOOL usesMetric = [[locale objectForKey:NSLocaleUsesMetricSystem] boolValue]; 

NSLog(@"The system is Metric: %@\n", (usesMetric ? @"YES" : @"NO")); 

Điều này thậm chí xảy ra cho ngôn ngữ thiết lập để tiếng Anh và bộ khu vực để Hoa Kỳ trên cả hai trình giả lập và trên thiết bị thực tế.

Tôi cũng đã thử NSLocaleMeasurementSystem và nó cũng luôn trả về "Chỉ số", không bao giờ là "Hoa Kỳ".

Làm cách nào để quyết định xem có nên sử dụng chỉ số hay không?

Nhờ sự giúp đỡ cho :)

... tôi có thể là may mắn như vậy mà cả thế giới thay đổi số liệu trong khi tôi đang ngủ :)

+1

Tôi gặp phải vấn đề tương tự, không có giải pháp nào cho đến nay. – FelixLam

Trả lời

11

Hãy thử currentLocale thay vì systemLocale

+0

Cảm ơn Stefan. Bởi vì câu hỏi gần một năm tuổi tôi đã tìm được cách giải quyết một thời gian dài trước đây, nhưng không bao giờ là nguyên nhân. Bất cứ ai có thể xác nhận điều này là chính xác để tôi có thể chấp nhận câu trả lời :) – RickiG

+0

systemLocale chứa các giá trị mặc định khi không có giá trị khác, tức là các giá trị trong currentLocale. currentLocale là những gì bạn muốn sử dụng. – ljkyser

2

Có cùng một vấn đề, cho đến khi tôi nhận ra rằng, Vương quốc Anh chính thức sử dụng hệ thống số liệu. Tôi đã luôn luôn nghĩ rằng họ vẫn sử dụng đế quốc, vì vậy tôi đã thử nghiệm với Vương quốc Anh.

Ngay sau khi tôi bắt đầu kiểm tra ngôn ngữ Hoa Kỳ, NSLocaleUsesMetricSystem bắt đầu trả về "KHÔNG" như mong đợi.

Hy vọng điều này sẽ hữu ích.

+0

Dường như đúng! bạn có bất kỳ nguồn nào cho Vương quốc Anh chính thức sử dụng số liệu không? – stigi

+0

[wikipedia] (http://en.wikipedia.org/wiki/Metrication_in_the_United_Kingdom) –

+0

Khá nhiều chỉ Bắc Mỹ sử dụng hệ thống Imperial. Phần còn lại của công việc sử dụng số liệu. – WrightsCS