Манипулирование строкой в ​​target-c - PullRequest
0 голосов
/ 19 июня 2011

это сложно описать, но я в настоящее время ловлю строку из базы данных, эта строка может быть длиной 1-4 символа, однако я хочу всегда отображать 4 символа, так что если я получу, скажем, строку, которая равна 34 Я хочу, чтобы это было 0034.

Я настроил метод для перехвата строки, так что теперь мне просто нужно выяснить, как это сделать. Затем я планирую передать эту строку в NSArray, чтобы я мог отправить каждый [i'th] массива четырем различным методам, управляющим анимацией в моем приложении.

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

это мой код, который у меня есть. Предложения / решения были бы отличными, спасибо, я так нов, что трудно найти решения для таких вещей, как манипуляции со строками и т.д ..

//... other method I am getting the string from/.
[self formatMyNumber:dataString];
///..


-(void)formatMyNumber:(NSString *)numberString{
    //resultLabel.text = numberString; //check to make sure  string makes it to here.
    //NSLog(@"hello From formatMyNumber method"); //check
}

//..
//the with send off each character to 4 animation methods that accept integers.
- (void)playAnimationToNumber:(int)number{
//...

// UpDated ... происходят странные вещи. вот мой метод до сих пор.

//Number Formatter
-(void)formatMyNumber:(NSString *)numberString{


    NSLog(@"This is what is passed into the method%@",numberString);
    int tempInt = (int)numberString;
    NSLog(@"This is after I cast the string to an int %i",tempInt);

    //[NSString alloc] stringWithFormat:@"%04d", numberString];
    NSString *tempString = [[NSString alloc] initWithFormat:@"%04d", tempInt];

    NSLog(@"This is after I try to put zeros infront %@",tempString);

    //resultLabel.text = tempString;
    //NSLog(@"hello From formatMyNumber method");
}

это вывод.

[Сессия началась в 2011-06-19 16:18:45 +1200.] 2011-06-19 16: 18: 54,615 nissanCode0,1 [4298: 207] 731 2011-06-19 16: 18: 54,616 nissanCode0.1 [4298: 207] 79043536 2011-06-19 16: 18: 54,617 nissanCode0.1 [4298: 207] 79043536 2011-06-19 16: 18: 54,617 nissanCode0.1 [4298: 207] привет От Метод formatMyNumber

Ответы [ 3 ]

2 голосов
/ 19 июня 2011

Что касается количества нулей, предшествующих вашей строке, есть несколько способов сделать это. Я бы предложил:

NSString * myString = [NSString stringWithFormat: @ "% 04d", [dataString intValue]];

2 голосов
/ 19 июня 2011

Возможно ли, что вы могли бы иметь число в целочисленной форме вместо строковой формы? Если это так, то довольно просто использовать [NSString stringWithFormat:@"%04d", number]. См. здесь для списка возможных спецификаторов формата.

1 голос
/ 19 июня 2011

Посмотрите, что может сделать stringWithFormat: .Я понимаю, что вы упомянули, что ваши числа являются NSStrings, но если они были целыми числами, или вы конвертировали их обратно в целые числа, следующее может помочьИзмените следующее, чтобы лучше всего удовлетворить ваши потребности:

return [NSString stringWithFormat:@"%04d", number];
...