Сбой программы iPhone при преобразовании с плавающей запятой в строку - PullRequest
0 голосов
/ 15 ноября 2010

У меня проблема с получением строки, которая была преобразована из числа с плавающей точкой для отображения в метке в пользовательской ячейке в UITableView.

Программа завершится сбоем, если я попытаюсь присвоить значение с плавающей точкой метке.Если я оставлю "strAIAreaIncrease = @" 6.5% ";"без комментариев, программа работает нормально - но без вычисленного значения.

strAIAreaIncrease = [NSString stringWithFormat:@"%.2f",fltAreaIncrease];
strAIAreaIncrease = [strAIAreaIncrease stringByAppendingString:@"%"];
DebugLog(@"The value of float num is %.2f", fltAreaIncrease);
DebugLog(@"The value of the string is %@", strAIAreaIncrease);
// strAIAreaIncrease = @"6.5%"; 

Консоль отладчика показывает следующее:

2010-11-14 19:52:38.122 Building Use[855:207]  The value of float num is 2.50
2010-11-14 19:52:38.123 Building Use[855:207]  The value of the string is 2.50%

Я использовал этот формат надругие пользовательские метки ячеек без проблем.У кого-нибудь есть идеи относительно того, что происходит?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 21 ноября 2010

ОК, я попытался реализовать NSMutabeString без успеха. Очевидно, что мне не хватает фундаментального понимания MSMutableString.

Я думаю, что способ, которым я создаю это, является частью проблемы. Мне нужно иметь возможность передать переменную нескольким методам, поэтому я пытаюсь создать ее в заголовке. Кажется, все примеры, с которыми я сталкиваюсь, создают строку в методе.

В моем заголовке у меня есть:

NSMutableString *strAIAreaIncrease;

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

2010-11-21 07:40:40.456 Building Use[1274:207] *** Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '+[NSMutableString string:]: unrecognized selector sent to class 0x2317c0'

Другой вопрос заключается в следующем: если я тогда использую значение MSMutableString в массиве, должен ли массив быть массивом MSMutable?

Спасибо.

0 голосов
/ 21 ноября 2010

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

strAIAreaIncrease = [NSMutableString string:@"someString"];

Но в классе NSMutableString нет метода "string:".Попробуйте использовать

strAIAreaIncrease = [NSMutableString stringWithString:@"someString"];

или

strAIAreaIncrease = [NSMutableString stringWithFormat:@"someString %d", someInteger];

По поводу вашего второго вопроса: нет, вам не нужно использовать NSMutableArray при работе с NSMutableString.«Mutable» в NSMutableArray означает, что вы можете добавлять и удалять объекты из массива после его генерации.

0 голосов
/ 15 ноября 2010

Я думаю, что вы должны использовать NSMutableString вместо:

, например

NSMutableString* straIAreaIncrease 
    = [NSMutableString stringWithFormat:@"%.2f", fltAreaIncreas];
[strAIAreaIncrease appendString:@"%%"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...