Вопрос

У меня есть int, и по какой-то причине он не работает после 16 или около того.Вот мой код:

NSArray *sortedArray; 
sortedArray = [doesntContainAnother sortedArrayUsingFunction:firstNumSort context:NULL];

int count2 = [sortedArray count];
//NSLog(@"%d", count2);
int z = 0;
while (z < count2) {
    NSString *myString = [sortedArray objectAtIndex:z];
    NSString *intstring = [NSString stringWithFormat:@"%d", z];
    NSString *stringWithoutSpaces; 
    stringWithoutSpaces = [[myString stringByReplacingOccurrencesOfString:intstring
                                                              withString:@""] mutableCopy];
    [hopefulfinal addObject:stringWithoutSpaces];
    NSLog(@"%@", [hopefulfinal objectAtIndex:z]);
    z++;
}

Редактировать:Это не int, это строка stringWithoutSpaces...Я не могу понять, чем это вызвано.

Таким образом, это (NSLog, см. Выше z ++) выглядит следующим образом:

"Здесь"

"неважно"

"17 что бы там ни было"

"18 это"

и т.д.

Это было полезно?

Решение

Я предполагаю, что это связано с вашим предыдущим вопросом Сортировка NSArray по значению int, содержащемуся в массиве, и что вы пытаетесь удалить начальный номер и пробел из массива , который выглядит так , как тот , который у вас был в этом вопросе:

"0 Here is an object"
"1 What the heck, here's another!"
"2 Let's put 2 here too!"
"3 Let's put this one right here"
"4 Here's another object"

Не зная полных входных данных, я бы предположил, что ваш код, скорее всего, терпит неудачу, потому что начальные цифры и значение z выходят из синхронизации.Поскольку вам, похоже, на самом деле все равно, что такое начальный номер, и вы просто хотите его выбрать, я бы порекомендовал другой подход, который сканирует на наличие начальных цифр и извлекает подстроку из позиции, где заканчиваются эти цифры:

NSArray *array = [NSArray arrayWithObjects:@"1 One",
                                           @"2 Two",
                                           @"5 Five",
                                           @"17 Seventeen",
                                           nil];

NSMutableArray *results = [NSMutableArray array];
NSScanner *scanner;
NSCharacterSet *whitespace = [NSCharacterSet whitespaceCharacterSet];

for (NSString *item in array) {
    scanner = [NSScanner scannerWithString:item];
    [scanner scanInteger:NULL]; // throwing away the BOOL return value...
                                // if string does not start with a number,
                                // the scanLocation will be 0, which is good.
    [results addObject:[[item substringFromIndex:[scanner scanLocation]]
                         stringByTrimmingCharactersInSet:whitespace]];
}

NSLog(@"Resulting array is: %@", results);

// Resulting array is: (
//    One,
//    Two,
//    Five,
//    Seventeen
// )

)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top