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);
,就不会报错。
但大多数情况下,我们替换的两种字符串都不是一样长的啊,为什么老会崩溃呢?
黑化八雲紫
10 years, 9 months ago