第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問如何在NSArray上進(jìn)行自然排序?

請問如何在NSArray上進(jìn)行自然排序?

iOS
梵蒂岡之花 2019-09-13 13:10:48
如何在NSArray上進(jìn)行自然排序?我有一個對象數(shù)組,我需要按照“標(biāo)題”鍵排序。它目前正在工作,雖然它使用的是ASCII排序而不是自然排序。標(biāo)題是文件名,所以它們看起來像這樣:file1 file2 file3 ... file10 file11 file12正如你所料,我得到了:file1 file10 file11 file12 file2 file3 ...有沒有人知道NSArray排序功能內(nèi)置了一種方法來獲得這種自然排序而不是字母排序?我發(fā)現(xiàn)了一些通用算法,但我希望有一些內(nèi)置的...
查看完整描述

3 回答

?
FFIVE

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個贊

NSStrings時,可以比使用NSNumericSearch比較選項(xiàng)。

一個版本:

NSInteger sort(Obj* a, Obj* b, void*) {
    return [[a title] compare:[b title] options:NSNumericSearch];}result = [array sortedArrayUsingFunction:&sort context:nil];

或者更通用一點(diǎn):

NSInteger sort(id a, id b, void* p) {
    return [[a valueForKey:(NSString*)p] 
            compare:[b valueForKey:(NSString*)p]
            options:NSNumericSearch];}result = [array sortedArrayUsingFunction:&sort context:@"title"]

或使用塊:

result = [array sortedArrayUsingComparator:^(Obj* a, Obj* b) { 
    return [[a title] compare:[b title] options:NSNumericSearch]; }];



查看完整回答
反對 回復(fù) 2019-09-16
?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個贊

試圖在Mac OS X 10.6及更高版本和iOS 4及更高版本上復(fù)制Finder排序行為的用戶可以localizedStandardCompare: 用作比較器選擇器。

在早期版本的Mac OS X和/或iOS上具有相同目標(biāo)的用戶應(yīng)使用“字符串編程指南”中描述的解決方案。


查看完整回答
反對 回復(fù) 2019-09-16
?
慕勒3428872

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個贊

如果您正在使用一組字符串對象:

簡短的回答:

NSArray?*orderedTitles?=?[unorderedTitles?sortedArrayUsingSelector:@selector(localizedStandardCompare:)];

完整示例:

NSArray?*unorderedTitles?=?@[
????@"file12",
????@"file1",
????@"file10",
????@"file3",
????@"file2",
????@"file11"];NSArray?*orderedTitles?=?[unorderedTitles?sortedArrayUsingSelector:@selector(localizedStandardCompare:)];NSLog(@"orderedTitles?=?%@",?orderedTitles);/*
orderedTitles?=?(
????file1,
????file2,
????file3,
????file10,
????file11,
????file12
)
*/



查看完整回答
反對 回復(fù) 2019-09-16
  • 3 回答
  • 0 關(guān)注
  • 557 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號