काम नहीं करता है, मैं अपने ऐप में इस कोड का उपयोग करता हूं। बस पाया सही नहीं है जब कोरियाई तुलनाएनएसएसटींग isEqualToString:
for (NSString *lang in array){
NSString *currentLang = [[MLLanguage sharedInstance] lang];
BOOL flag = [lang isEqualToString:currentLang];
NSLog(@"\n'%@' isEqual to '%@', %d\n%@\n%@", lang, currentLang, flag?1:0, [lang dataUsingEncoding:NSUTF8StringEncoding], [currentLang dataUsingEncoding:NSUTF8StringEncoding]);
गलत परिणाम: दो कोरियाई शब्द अलग अलग रूप में की तुलना में
2012-06-19 21:16:52.681 Motilink[10188:11903] -[MLSettingLanguageViewController loadDownloadedData][Line 50]
'English' isEqual to '한국어', 0
<456e676c 697368>
<ed959cea b5adec96 b4>
2012-06-19 21:16:52.682 Motilink[10188:11903] -[MLSettingLanguageViewController loadDownloadedData][Line 50]
'한국어' isEqual to '한국어', 0
<e18492e1 85a1e186 abe18480 e185aee1 86a8e184 8be185a5>
<ed959cea b5adec96 b4>
2012-06-19 21:16:52.682 Motilink[10188:11903] -[MLSettingLanguageViewController loadDownloadedData][Line 50]
'中国语' isEqual to '한국어', 0
<e4b8ade5 9bbde8af ad>
<ed959cea b5adec96 b4>
सही:
2012-06-19 21:35:00.908 Motilink[10188:11903] -[MLSettingLanguageViewController loadDownloadedData][Line 50]
'English' isEqual to '中国语', 0
<456e676c 697368>
<e4b8ade5 9bbde8af ad>
2012-06-19 21:35:00.909 Motilink[10188:11903] -[MLSettingLanguageViewController loadDownloadedData][Line 50]
'한국어' isEqual to '中国语', 0
<e18492e1 85a1e186 abe18480 e185aee1 86a8e184 8be185a5>
<e4b8ade5 9bbde8af ad>
2012-06-19 21:35:00.909 Motilink[10188:11903] -[MLSettingLanguageViewController loadDownloadedData][Line 50]
'中国语' isEqual to '中国语', 1
<e4b8ade5 9bbde8af ad>
<e4b8ade5 9bbde8af ad>
ऐसा लगता है कि: द्वारा NSString उपयोग एनकोड खुद,
अंग्रेजी केवल 7 बाइट का उपयोग ascii
चीनी उपयोग उपयोग 9 बाइट शायद
लेकिन कोरियाई में UTF8, यह दो अलग-अलग परिणाम दिखाई देते हैं
किसी को पता है इस
-lang एक NSString वापसी करता है? यदि नहीं, तो वे कभी बराबर नहीं होंगे। हो सकता है कि आपको दोनों को एमएल भाषा में डालना चाहिए और isEqual: ऑपरेटर का उपयोग करने का प्रयास करें। –
यह एक NSString वस्तु है, तो आप लॉग देख सकते हैं, केवल कोरियाई गलत –
'한국어' isEqual है करने के लिए '한국어', 0 । लैंग ऑब्जेक्ट पहली पंक्ति है। हो सकता है कि लैंग ऑब्जेक्ट एक utf8 nSString –