2013-12-09 2 views
-2

У меня есть этот код, чтобы сохранить изображения в моем приложенииСортировка в NSHomeDirectory

NSString *fileName = [NSString stringWithFormat:@"2013_%d_a_%d",count,indexToInsert]; 
     NSString *pngPath = [NSHomeDirectory() stringByAppendingPathComponent:[@"Documents/" stringByAppendingString:fileName]]; 
     NSData *imageData = UIImagePNGRepresentation(imageToAdd); 
     [imageData writeToFile:pngPath atomically:YES]; 

в моем журнале я вижу это:

"2013_10_a_1", 
    "2013_1_a_1", 
    "2013_2_a_1", 
    "2013_3_a_1", 
    "2013_4_a_1", 
    "2013_5_a_1", 
    "2013_6_a_1", 
    "2013_7_a_1", 
    "2013_8_a_1", 
    "2013_9_a_1" 

почему «2013_10_1» находится на вершине? он находится в положении 0, я хочу его в позиции 9 (10 элементов)

ответ

0

Проблема заключается в том, что символ подчеркивания _ (ascii code 95) сортируется после любого символа числа (коды ascii от 48 до 57).

Изменение выходного файла, чтобы включить лидирующего нуля, и вам не придется возиться с сортировкой вопросов:

NSString *fileName = [NSString stringWithFormat:@"2013_%03d_a_%d",count,indexToInsert]; 

Выведет:

"2013_001_a_1", 
"2013_002_a_1", 
"2013_003_a_1", 
"2013_004_a_1", 
"2013_005_a_1", 
"2013_006_a_1", 
"2013_007_a_1", 
"2013_008_a_1", 
"2013_009_a_1", 
"2013_010_a_1" 
+0

ага !!!!!!!!! !! – CrazyDev

0

Ваши строки содержат номера, поэтому вам нужно сделать числовое сортирование, а не просто сортировку строки. Для этого используйте метод compare:options: на NSString с опцией NSNumericSearch.

Смежные вопросы