Objective-C: Как заменить HTML-объекты?
Я получаю текст из Интернета и содержит html-объекты (т.е. ó
= -ó). Я хочу показать этот текст в пользовательской ячейке iPhone.
Я попытался использовать UIWebView в своей пользовательской ячейке, но я предпочитаю использовать многострочный UILabel. Проблема в том, что я не могу найти способ замены этих объектов HTML.
Ответы
Ответ 1
Ознакомьтесь с моей категорией NSString для HTML. Вот доступные методы:
- (NSString *)stringByConvertingHTMLToPlainText;
- (NSString *)stringByDecodingHTMLEntities;
- (NSString *)stringByEncodingHTMLEntities;
- (NSString *)stringWithNewLinesAsBRs;
- (NSString *)stringByRemovingNewLinesAndWhitespace;
Ответ 2
Google Toolbox для Mac содержит дополнение NSString для iPhone, которое сделает это для вас: gtm_stringByUnescapingFromHTML
, определенный в GTMNSString + HTML.h и GTMNSString + HTML.m. Если вы прокомментируете вызовы _GTMDevLog и #import "GTMDefines.h" в .m, вам нужно добавить эти два файла в свой проект.
Ответ 3
Вы можете создать метод, который может заменить html-объекты на строки, указанные вами.
+(NSString*)parseString:(NSString*)str
{
str = [str stringByReplacingOccurrencesOfString:@"–" withString:@"-"];
str = [str stringByReplacingOccurrencesOfString:@"”" withString:@"\""];
str = [str stringByReplacingOccurrencesOfString:@"“" withString:@"\""];
str = [str stringByReplacingOccurrencesOfString:@"ó" withString:@"o"];
str = [str stringByReplacingOccurrencesOfString:@"'" withString:@"'"];
return str;
}
вызов этого метода для замены строки путем отправки строки в качестве параметра.
Ответ 4
Чтобы развернуть ответ Мэтта Стивенса (так как мне еще не разрешено прокомментировать), вам не нужно комментировать _GTMDevLog, поскольку он намеренно настроен так, что вы можете #define его самостоятельно, независимо от того, что вы хотите.
Ответ 5
Можно ли использовать метод NSMutableString
replaceOccurrencesOfString:withString:options:range:
?