Frage

Ich habe ein int und aus irgendeinem Grunde funktioniert es nicht nach 16 oder so. Hier ist mein Code:

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++;
}

Edit:. Es ist nicht die int, es ist die stringWithoutSpaces Linie ... ich kann nicht herausfinden, was es verursacht

So ist es (das NSLog, über die z siehe ++) sieht wie folgt aus:

"Hier"

"was auch immer"

"17 whatevere"

"18 dieses"

etc.

War es hilfreich?

Lösung

Ich vermute, dies auf Ihre frühere Frage zusammenhängt Sortieren NSArray die durch einen int in dem Array enthalten sind, und dass Sie versuchen, die führende Zahl und Leerzeichen aus einem Array strippen, die wie das sieht man in dieser Frage hatte:

"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"

Ohne die vollständige Eingabe weiß, würde ich vermuten, dass Ihr Code wahrscheinlich versagt, weil die führenden Zahlen und der Wert von z sind nicht synchron zu bekommen. Da Sie scheinen nicht wirklich zu kümmern, was die führende Zahl ist, und wollen es einfach abhauen, würde ich einen anderen Ansatz empfehlen, die für die führenden Ziffern durchsucht und extrahieren den Teil aus der Position, wo diese Ziffern enden:

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
// )

)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top