Dans iOS 7, vous pouvez utiliser NSAttributedString la possibilité d'importer HTML pour convertir en entités HTML à un NSString.
Par exemple:
@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
Ensuite, dans votre code lorsque vous voulez nettoyer les entités:
NSString *cleanString = [[NSAttributedString attributedStringWithHTMLString:question.title] string];
C'est probablement la façon la plus simple, mais je ne sais pas comment performant, il est. Vous devriez probablement être sacrément sûr que le contenu de votre "nettoyage" ne contient pas d' <img>
tags ou des trucs comme ça parce que cette méthode permettra de télécharger ces images lors de l'HTML à NSAttributedString de conversion. :)