2009-10-15 3 views
1

У меня следующий код, который называется множество раз:iPhone Strange с NSString

 
NSString *Final = [ NSString stringWithFormat:@"%@%@%@%@.%@%@", str1, str2, str3, str4, str5, str6]; 

Каждый раз в то время как Final строка устанавливается в ноль, в то время как str1 ... к STR6 вполне допустимая строка (у меня есть проверено в отладчике)!

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

 
NSString *Final = [ [NSString alloc] initWithFormat:@"%@%@%@%@.%@%@", str1, str2, str3, str4, str5, str6]; 
... 
[Final release]; 

Я совершенно озадачен. Что бы это могло быть?

В основном я собираю значения из разных полей редактирования, формирую строку из этих значений и в конечном итоге преобразую ее в число.

Спасибо!

+2

Вы задали 15 вопросов, но не получили ответа. –

ответ

-2

Это неуклюжая альтернатива. Если линия не работает, попробуйте следующее:

NSString * finalstr = str1; 
finalstr = [finalstr stringByAppendingString:str2]; 
finalstr = [finalstr stringByAppendingString:str3]; 
finalstr = [finalstr stringByAppendingString:str4]; 
finalstr = [finalstr stringByAppendingString:str5]; 
finalstr = [finalstr stringByAppendingString:str6]; 

, кстати, я использовал, чтобы избежать этих часто используемых зарезервированных слов, чтобы быть мои имена переменных (хотя финал не зарезервированное слово в Objective-C).

+3

Downvote: неэквивалентное обходное решение. Плюс: ошибка, избегающая поиска, - плохая идея. –

+0

Согласен и спасибо за комментарий. С другой стороны, имея в виду вопрос, кажется, что линия не имеет проблемы вообще. Итак, Леон, не могли бы вы разместить содержание str1 - str6 для ссылки? – Raptor

+0

Я закончил переписывать код, используя простые указатели C (которые я использовал последние 15 лет). У меня есть символ строки [7]. Затем я заполняю каждый символ [i] соответствующей цифрой, помещаю NULL в последнее значение и создаю, а затем вызываем decimalNumberFromString (или atof или atoi) – leon

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