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