python腳本生成一個Objective-c程序讀取的已排序的utf 8字符串列表。 唯一的問題,似乎這些語言的排序有所不同?
python/objective-c utf8比較不同
在Python, 'i' 的< 'é'`
但在目標c [@"i" compare:@"é"]
返回1(NSDescendingAscending
)(這意味着 'I'>' é'`)
任何想法如何得到這個權利?我不介意改變我的任何Python代碼或我的Objective-C代碼
感謝
python腳本生成一個Objective-c程序讀取的已排序的utf 8字符串列表。 唯一的問題,似乎這些語言的排序有所不同?
python/objective-c utf8比較不同
在Python, 'i' 的< 'é'`
但在目標c [@"i" compare:@"é"]
返回1(NSDescendingAscending
)(這意味着 'I'>' é'`)
任何想法如何得到這個權利?我不介意改變我的任何Python代碼或我的Objective-C代碼
感謝
在Objective-C
[@"記者" compare:@"記譜"]
返回-1(NSAscending
)(這意味着'記者' > '記譜'
)
不,這不是什麼意思。上升意味着,當按從左到右的順序讀取(接收者到參數)時,您會在排序中上升/下降。所以,這意味着接收者不如參數。
從the docs for NSOrderedAscending
:
NSOrderedAscending
左操作數大於右操作數較小。
肯,我認爲你在這裏是錯的 – Thomas
那麼,你編輯你的問題,因爲我回復,所以它是不同的。你的問題現在無意義了,因爲沒有'NSDescendingAscending'這樣的東西。儘管如此,我不確定我如何引用和鏈接到文檔是錯誤的。 「NSOrderedAscending」確實意味着接收者比參數少。你可以使用'NSNumber'來驗證它:'[[NSNumber numberWithInt:1] compare:[NSNumber numberWithInt:2]]' - >'NSOrderedAscending' –
好的我沒有注意到我的問題中的錯誤,對不起! :)是的,你是正確的上升和下降的手段,但假設我是正確的,我的問題基本上是「爲什麼python的比較不同於比較在objective-c」 出於某種原因,當我按Enter鍵添加它發送信息的一條線和上次沒有保留我的完整答案。我補充說,正確的答案是「使用比較:選項:NSLiteralSearch」 – Thomas
它可能與某個案例使用複合字符(如'+ e =é和許多中文符號)有關,而另一個則不是。如果是這樣,他們實際上是不同的情況下,兩個比較是正確的。 –