NSAttributedString在IOS 6.1上崩溃

时间:2013-12-12 11:59:40

标签: ios ios6 nsstring nsattributedstring

我将NSAttributedString用于两件事:

1.使用HTML格式字符串填充UITextView

2.根据内容的长度调整TextView的大小

NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[MyHTMLString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];

myTextView.attributedText = attributedString;

UITextView *calculationView = [[UITextView alloc] init];
[calculationView setAttributedText:attributedString];
CGSize size = [calculationView sizeThatFits:CGSizeMake(screenWidth,FLT_MAX)];

CGRect frame_summary = CGRectMake(0, y, size.width, size.height);
myTextView.frame = frame_summary;

它在IOS 7.1上运行良好,但IOS 6.1在第一行崩溃(EXC_BAD_ACCES)

据我所知,NSAttributedString适用于IOS 6.

有任何线索吗?

最后在IOS 5上使用任何建议或任何替代方案?

提前致谢

1 个答案:

答案 0 :(得分:1)

- (id)initWithData:(NSData *)data options:(NSDictionary *)options documentAttributes:(NSDictionary **)dict error:(NSError **)error 

仅适用于iOS 7.0。 以及您在选项中使用的标志。 ( NSDocumentTypeDocumentAttribute NSHTMLTextDocumentType )。

你应该改用:

- (id)initWithString:(NSString *)str attributes:(NSDictionary *)attrs;

您可以像这样从NSData创建str,例如:

- (NSString *)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding;

好运。