В iOS 7 вы можете использовать способность NSAttributedString импортировать HTML для преобразования сущностей HTML в NSString.
Например:
@interface NSAttributedString (HTML)
+ (instancetype)attributedStringWithHTMLString:(NSString *)htmlString;
@end
@implementation NSAttributedString (HTML)
+ (instancetype)attributedStringWithHTMLString:(NSString *)htmlString
{
NSDictionary *options = @{ NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute :@(NSUTF8StringEncoding) };
NSData *data = [htmlString dataUsingEncoding:NSUTF8StringEncoding];
return [[NSAttributedString alloc] initWithData:data options:options documentAttributes:nil error:nil];
}
@end
Тогда в вашем коде, когда вы хотите очистить сущности:
NSString *cleanString = [[NSAttributedString attributedStringWithHTMLString:question.title] string];
Это, наверное, самый простой способ, но я не знаю, насколько он эффективен. Вы, вероятно, должны быть чертовски уверены, что контент, который ваша «чистка» не содержит тегов <img>
или чего-то подобного, потому что этот метод загружает эти изображения во время преобразования HTML в NSAttributedString. :)