我有一个UITextView,我在UITextView.text的末尾替换了一个单词,如下面的代码:
-(void)replaceTextViewWithWord:(NSString *)word {
NSString *currentTextViewText = self.textView.text;
currentTextViewText = [currentTextViewText stringByReplacingCharactersInRange:NSMakeRange([self.textView.text length] - [word length], [word length]) withString:word];
self.textView.text = currentTextViewText;
}
替换工作正常,但是当textView变得更长时,它运行得非常缓慢。
我尝试使用 replaceRange:withText 一周,但仍然卡住了。 在我的情况下,不知道如何使用它来替换它。
请指导!提前致谢!这是一项紧迫的任务。
答案 0 :(得分:0)
当您使用不可变字符串时,您正在创建一个非常长的字符串并将其分配给已创建的NSString。
而不是NSString
使用NSMutableString
而不是一些头颅将被减少。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
FooBarCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier];
if (cell == nil) {
cell = [[EditCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:kCellIdentifier];
cell.mutableString = [NSMutableString string];
cell.textView.text = cell.mutableString;
}
[cell.mutableString setString:@"text to show"];
return cell;
}
答案 1 :(得分:0)
如果您使用UITextView(没有适用于ios6及以下版本),没有更好的方法
在ios7上有textkit