Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS:如何将NSAttributedString保存为String_Ios_Objective C_Nsattributedstring - Fatal编程技术网

iOS:如何将NSAttributedString保存为String

iOS:如何将NSAttributedString保存为String,ios,objective-c,nsattributedstring,Ios,Objective C,Nsattributedstring,我的UIText视图中有一个NSAttributed字符串, 我想把它翻译成NSString并保存它。 因此,我使用这些代码来实现: - (NSString *)attriToStrWithAttri:(NSAttributedString *)attri{ NSDictionary *tempDic = @{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType, NSCharacterE

我的UIText视图中有一个NSAttributed字符串, 我想把它翻译成NSString并保存它。 因此,我使用这些代码来实现:

- (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];