Я хочу сохранить запись
в текстовом поле приложения iPhone. Тем не менее, регистрация и последующий просмотр UItextField предполагают, что эта строка превращается в простое старое пространство ...Сохранение ` ` в NSString?
Когда я добавляю  
в текстовое поле, оно идет как одиночные символы до конечной точки с запятой, исчезает из сообщения журнала и рассматриваются просто как единое пространство, таким образом ...
MyApp [17425: 20b] Вход строки & nbsp1234
// добавляет точку с запятой здесь ...
MyApp [17425: 20b] Запишите строку 1234
Что я хочу сделать, это не преобразовывать  
- чтобы впоследствии его можно было отправить на веб-сайт и увидеть как HTML. Могу ли я сделать это с помощью NSString или ему потребуется что-то еще?
Редактировать: Я должен был также сказать, что я бы предпочел, чтобы UITextField также отображал это после сохранения данных в массиве и повторного заполнения UITextField из массива ... Думаю, все это сводится к то ли NSString действительно преобразует это, или если он просто скрывает его ... Угадайте, что я не понимаю, что происходит автоматически-волшебным образом превратить  
в пространство (по крайней мере для отображения) с помощью NSString ...
Редактировать 2: 8/10/09 Извинения, если это неправильное использование, я не мог получить интерфейс, чтобы позволить мне опубликовать «ответ», и я не могу добавить комментарий ...
В ответ на вопрос Мэтта я опубликовать некоторый код, внутри другого редактировать ... Также из интерес представляет собой регистрацию «подсчета» строки между строкой, содержащей строку & nbsp, и когда она содержала
... То, что мне показалось интересным, состоит в том, что кажется, что число уменьшается, когда я «завершу»
, введя точку с запятой. Первоначально это привело к следующей ошибке, потому что (я думаю) подсчет строки и подсчет диапазона отличались, как только
был завершен (я немного напишу код) ... - [NSCFString substringWithRange:] : Диапазон или индекс за пределами границ '
Я исправил ошибку сбоя, используя количество строк в коде вместо количества диапазонов, но это все еще интересно, а «literal»
больше не отображается в текстовом поле. ..
2009-08-08 14: 58: 26,319 [17897: 20b] это ул :: -><p class="blankline">
& NBSP
2009-08-08 14: 58: 26.320 [17897: 20b] ул-х это подсчитывать 27
// в этот момент я вхожу в точку с запятой и счетчик строк падает обратно ...
2009-08-08 14: 58: 28,095 [17897: 20b] ул :: это - ><p class="blankline">
2009-08-08 14: 58: 28,096 [17897: 20b] это граф STR по 23
2009-08-08 14: 58: 31,223 [17897: 20b] это Обл :: -><p class="blankline">
2009-08-08 14: 58: 31,223 [17897: 20b] это граф STR в 24
2009-08-08 14:58:31.319 [17897: 20b] это Обл :: -><p class="blankline">
в
2009-08-08 14: 58: 31.320 [17897: 20b] это граф STR по 25
2009-08-08 14 : 58: 31,423 [17897: 20b] это StR :: -><p class="blankline">
ASD
2009-08-08 14: 58: 31,423 [17897: 20b] это граф STR по 26
2009-08 -08 14: 58: 31.527 [17897: 20b] this is str :: -><p class="blankline">
asdf
2009-08-08 14: 58: 31.527 [17897: 20b] t его это граф STR по 27
Edit 4 8/10/09: писал выше код, потому что он не будет отображаться в противном случае ...
Благодаря матовые, действительно интересно ... как я отправлял мои КОММЕНТАРИИ мне показалось, что это может быть проблемой с TextView - я попытался изменить пару настроек в IB, но ничего не изменилось с точки зрения «исчезающих»
. Спасибо за ваше время!
Edit 3: 8/10/09
- (void)textViewDidChange:(UITextView *)aTextView {
[self updateTextViewPlacehoderFieldStatus];
if (dismiss == YES) {
dismiss = NO;
return;
}
NSRange range = [aTextView selectedRange];
NSArray *stringArray = [NSArray arrayWithObjects:@"http:", @"ftp:", @"https:", @"www.", nil];
NSString *str = [aTextView text];
NSLog(@"this is str::--> %@", str);
NSLog(@"this is str's count %d", str.length);
//as soon as I enter the semicolon, the printout of this log message displays a single space and the count decreases...
int i, j, count = [stringArray count];
BOOL searchRes = NO;
for (j = 4; j <= 6; j++) {
if (range.location < j)
return;
NSRange subStrRange;
// subStrRange.location = range.location - j;
//I took this out because adding to the post caused a mismatch between the length of the string from the text field and range.location
//both should be equal, but my best guess is that the OS/Cocoa interprets as ONE space.
//This caused NSString *subStr = [str substringWithRange:subStrRange]; to fail if the user entered in the text field
subStrRange.location = str.length -j;
subStrRange.length = j;
[self setSelectedLinkRange:subStrRange];
NSString *subStr = [str substringWithRange:subStrRange];
//Code crashed here with error -[NSCFString substringWithRange:]: Range or index out of bounds'
//I fixed this by using str.length instead of range.location
for (i = 0; i < count; i++) {
NSString *searchString = [stringArray objectAtIndex:i];
if (searchRes = [subStr isEqualToString:[searchString capitalizedString]])
break;else if (searchRes = [subStr isEqualToString:[searchString lowercaseString]])
break;else if (searchRes = [subStr isEqualToString:[searchString uppercaseString]])
break;
}
if (searchRes)
break;
}
if (searchRes && dismiss != YES) {
[textView resignFirstResponder];
UIAlertView *linkAlert = [[UIAlertView alloc] initWithTitle:@"Link Creation" message:@"Do you want to create link?" delegate:self cancelButtonTitle:@"Create Link" otherButtonTitles:@"Dismiss", nil];
[linkAlert setTag:1]; // for UIAlertView Delegate to handle which view is popped.
[linkAlert show];
MyAppAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
[delegate setAlertRunning:YES];
[linkAlert release];
}
}
Ничего себе. Это очень странно. Я смог дублировать проблему, с которой вы сталкиваетесь, но это не может быть проблемой с NSString. Вы можете проверить это, создав NSString как этот NSString * hello = @ "Hello World" ;. Затем распечатайте это с помощью NSLog. Нет, это как-то связано с свойством «text» UITextView. Возможно, вы захотите разместить на нем радар. Может быть, есть объяснение, но я еще не нашел его. Будет продолжать выглядеть так, как это довольно интересно. –
Я не смог ничего с этим поделать. Я пробовал другие HTML-коды, и все они прекрасно печатаются. Кажется, это просто Я бы написал ошибку: http://developer.apple.com/BugReporter/ -Matt –
Спасибо, что посмотрел Мэтт ... приятно знать, что я этого не воображал! – 2009-08-16 07:55:45