大きな NSMutableString (潜在的に数百メガバイト) があり、多くの rangeOfCharacterFromSet: 操作を実行する必要があります。
パフォーマンスを向上させるために、NSOperationQueue で文字列を ~100kb のチャンクに分割し、それぞれを非同期的に処理したいと考えています。
しかし、文字列が非常に大きいため、スレッドごとに不変のコピーを作成することは現実的ではありません。
文字列の変更を許可しないと仮定すると (操作キューが終了するまでメイン スレッドをブロックするつもりです)、これは安全ですか?
Apple は NSString をスレッドセーフであり、すべての不変オブジェクトを「一般的に」スレッドセーフではないとして文書化していますが、おそらく一部のメソッドにのみ適用されますか? rangeOfCharacterFromSet は、私が使用している唯一のものです。
このコードは、OS X と iOS の両方で実行されます (通常、iOS ではより小さな文字列を使用します)。