iOS:如何将NSAttributedString保存为String
我的UIText视图中有一个NSAttributed字符串, 我想把它翻译成NSString并保存它。 因此,我使用这些代码来实现:iOS:如何将NSAttributedString保存为String,ios,objective-c,nsattributedstring,Ios,Objective C,Nsattributedstring,我的UIText视图中有一个NSAttributed字符串, 我想把它翻译成NSString并保存它。 因此,我使用这些代码来实现: - (NSString *)attriToStrWithAttri:(NSAttributedString *)attri{ NSDictionary *tempDic = @{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType, NSCharacterE
- (NSString *)attriToStrWithAttri:(NSAttributedString *)attri{
NSDictionary *tempDic = @{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute:[NSNumber numberWithInt:NSUTF8StringEncoding]};
NSData *htmlData = [attri dataFromRange:NSMakeRange(0, attri.length)
documentAttributes:tempDic
error:nil];
return [[NSString alloc] initWithData:htmlData
encoding:NSUTF8StringEncoding];
}
下次我想在文本视图中显示它时,我使用以下代码将其转换为NSAttributedString:
NSAttributedString *attrStr =[[NSAttributedString alloc] initWithData:[self.richTextString dataUsingEncoding:NSUTF8StringEncoding]
options:@{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute:[NSNumber numberWithInt:NSUTF8StringEncoding]}
documentAttributes:nil
error:nil];
我发现它的属性发生了变化。
例如:
我保存它。
然后我加载并转换为NSAttributedstring。
我该如何处理这个问题 这是因为HTML4对HTML5 当您将NSAttributed字符串转换为html时,您将得到HTML4 但刚刚翻译的html内容似乎应该是HTML5。当你把html放回原处时,它看起来会更大 因此,当您不断翻译NSAttributedString并将html放回时,它将不断生成HTML4并将其放回HTML5使字体大小变大 像这样: NSAttributedString->HTML4->NSAttributedString 您可以尝试删除HTML4标记,让NSAttributedString正确地将翻译后的html解析为HTML5 例:改为 像这样: NSAttributedString->HTML4->as HTML5->NSAttributedString
@Codus噢,我的意思是我从textview中获得了一些attributedstring,并将其保存为html+css字符串,就像pic1一样。下次我加载此字符串并将其转换为attributedstring时,发现一些属性值发生了更改。将NSString转换为NSAttributedstring的代码中是否存在任何问题?非常感谢,我发现这是一个问题关于pt和px。
NSString *str = [attri string];