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:?