小编Boz*_*ack的帖子

NSAttributedString initWithData:选择:documentAttributes:错误:documentAttributes不会保留在ARC

我正在尝试加载文档NSData(它来自Dropbox我的应用程序中的文件,但为了简单起见,下面的示例使用.txt文件,这导致我正在尝试解决的相同问题).

问题:我实例化一个NSDictionary,并将其[NSAttributedString -initWithData:options:documentAttributes:error:]作为out参数传递给它.

但是,NSDictionary实例被取消分配,并导致-initWithData:options:documentAttributes:error:崩溃.

当我启用时NSZombie,我得到的错误是:[_ _ NSDictionaryI retain]:发送到解除分配的实例的消息

- initWithData:options:documentAttributes:error:当我将NULL传递给documentAttributes时运行正常.

这是代码:

NSError* error;
NSString* path = [[NSBundle mainBundle] pathForResource:@"Forward Thinking"
                                                 ofType:@"txt"];
NSData* data = [NSData dataWithContentsOfFile:path options:NSDataReadingMappedAlways error:&error];
if (data) {
    dispatch_async(dispatch_get_main_queue(), ^{
        NSDictionary* documentAttributes = [[NSDictionary alloc] init];
        NSAttributedString* attrStr = [[NSAttributedString alloc] initWithData:data options:nil documentAttributes:&documentAttributes error:NULL];
        self.textView.attributedText = attrStr;
    });
}
Run Code Online (Sandbox Code Playgroud)

任何线索都会很棒!

nsattributedstring ios

4
推荐指数
1
解决办法
3250
查看次数

标签 统计

ios ×1

nsattributedstring ×1