NSTextStorage在replaceCharactersInRange的时候遇到EXC_BAD_ACCESS


我想在NSTextView中替换某段文本,比如把aaaaaa替换成bbb。但当我使用replaceCharactersInRange时老是遇到内存异常的错误,这里是代码

NSTextStorage *textStorage = [textView textStorage];
NSRange found = NSMakeRange(0, 1);

[textStorage beginEditing];
[textStorage replaceCharactersInRange:found withString:@"bbb"];
[textStorage endEditing];

这个range我可以保证是完全在范围内的。而且我发现如果我把range的length改成跟替换的字符串一样长,它就不会报错。比如这里我要替换成@"bbb",那么我把NSRange found = NSMakeRange(0, 3);,就不会报错。

但大多数情况下,我们替换的两种字符串都不是一样长的啊,为什么老会崩溃呢?

objective-c macosx cocoa
0条评论 | 修改 | 链接

没有回答