我有一個NSFetchRequest
從核心數據獲取對象並使用一個微不足道的NSSortDescriptor
對它們進行排序。我用一對夫婦取決於用戶選擇什麼樣不同的人,但他們是這樣的:NSSortDescriptor - 訂單是否已更改?
NSMutableArray *sortDescriptors = [NSMutableArray array];
NSSortDescriptor *sortDescriptor1 = [NSSortDescriptor sortDescriptorWithKey:@"ownerName" ascending:YES selector:@selector(caseInsensitiveCompare:)];
NSSortDescriptor *sortDescriptor2 = [NSSortDescriptor sortDescriptorWithKey:@"petName" ascending:YES selector:@selector(caseInsensitiveCompare:)];
[sortDescriptors addObject:sortDescriptor1];
[sortDescriptors addObject:sortDescriptor2];
[fetchRequest setSortDescriptors:sortDescriptors];
一切正常上的iOS5和5.1一如預期,但是當我測試在iPad上運行iOS4的完全相同的代碼。 2.1(或4.3模擬器),所有第一個排序描述符的順序相反。在這個例子中,所有者姓名是從Z到A的順序,但寵物正確訂購A到Z!
早期iOS版本中是否存在導致ascending
布爾值錯誤的錯誤?另外,還有什麼我可能做錯了嗎?
編輯:第一個鍵(ownerName)用作NSFetchedResultsController
部分。不確定這是否相關。
感謝克雷格
如果您爲'ascending'參數傳遞'NO',您會得到正確的順序嗎? – Mundi 2012-01-27 22:57:36
是的。我已經將第一個SD上的'升序'字符更改爲NO,然後反映了iOS5的結果。第二個SD仍然設置爲YES,並且該部分中的項目以相同的方式排序。奇怪的! – 2012-01-28 00:20:44