删除NSMutableString的第一个字符而不重置

时间:2017-01-25 17:19:32

标签: objective-c nsstring nsmutablestring

我使用NSMutableString来保存结果缓冲区,当它达到9999个字符时我要刷新它。 我有一个简单的方法来构建这个字符串(将NSString附加到它的结尾):

for(NSString* val in someStrArray)
{
    [_resultsBuffer appendString:val];
}

我想要另一个刷新此NSMutableString的方法。这个方法应该可以从另一个线程调用,这意味着该字符串可以在它被剪切的同时构建。

任何我可以"默默地"切掉字符串的开头而不重置它? (我无法重置,因为可能会构建字符串,如果重置变量,我可能会丢失数据。)

1 个答案:

答案 0 :(得分:1)

NSMutableString不是线程安全的。并且当它处于任何操作(例如使用迭代追加字符串)时,您无法修改字符串。

您应该等到完成此类操作或先停止操作然后再进行修改。

就像您正在观看视频一样,同时您需要重命名视频。在这种情况下,您需要停止视频或等待视频完成。

因此,如果您的字符串不在任何操作中,则可以刷新数据。