我使用NSMutableString来保存结果缓冲区,当它达到9999个字符时我要刷新它。 我有一个简单的方法来构建这个字符串(将NSString附加到它的结尾):
for(NSString* val in someStrArray)
{
[_resultsBuffer appendString:val];
}
我想要另一个刷新此NSMutableString的方法。这个方法应该可以从另一个线程调用,这意味着该字符串可以在它被剪切的同时构建。
任何我可以"默默地"切掉字符串的开头而不重置它? (我无法重置,因为可能会构建字符串,如果重置变量,我可能会丢失数据。)
答案 0 :(得分:1)
NSMutableString不是线程安全的。并且当它处于任何操作(例如使用迭代追加字符串)时,您无法修改字符串。
您应该等到完成此类操作或先停止操作然后再进行修改。
就像您正在观看视频一样,同时您需要重命名视频。在这种情况下,您需要停止视频或等待视频完成。
因此,如果您的字符串不在任何操作中,则可以刷新数据。