2017-01-25 12 views
0

NSMutableStringを使用して結果バッファを保存します。これは9999文字に達するとフラッシュします。 私はこの文字列を構築する簡単な方法(その末尾にNSStringのを追加します)があります。リセットせずにNSMutableStringの最初の文字を削除します

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

を、私はこのNSMutableStringをフラッシュし、別の方法を求めています。このメソッドは、別のスレッドから呼び出すことができるはずです。つまり、文字列を切り取るのと同時に作成することができます。

私は「静かに」文字列の開始をそれをリセットせずにカットできますか? (文字列が作成され、変数をリセットするとデータが失われる可能性があるため、リセットできません)。

+0

私はあなたのQを理解していません。「NSMutableString」はスレッドセーフではないので、何らかの種類のシリアル化を追加する必要があります。 –

+0

'_resultsBuffer'変数を複数のスレッドが操作できるように「サイレント」にカットするときに変数をロックすれば十分でしょうか? –

答えて

1

NSMutableStringはスレッドセーフではありません。また、繰り返しのある追加文字列のような操作であれば、文字列を変更することはできません。

このような操作が完了するまで待つか、操作を最初に停止してから変更してください。

あなたはビデオを見ているのと同じように、ビデオの名前を変更する必要があります。この場合、ビデオを停止するか、ビデオの完成を待つ必要があります。

文字列が何も操作されていない場合にのみデータをフラッシュできます。

関連する問題