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



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

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

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

有什么方法可以"静默地"剪切字符串的开头而不重置它?(我无法重置,因为字符串可能已构建,如果我重置变量,我可能会丢失数据)。

NSMutableString 不是线程安全的。而且,当字符串处于任何操作中时,您都无法修改字符串,例如使用迭代附加字符串。

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

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

因此,如果您只能在字符串不在任何操作中刷新数据。

最新更新