2016-08-29 4 views
0

私のアプリケーションでは、フィルタを適用するビューがあります。だから私が戻ってフィルタを変更するが、適用ボタンを押してボタンを押すだけで元のフィルタを元のものに戻し、変更する前に元のフィルタを適用したい。クローンNSArrayは元の配列を変更したときに変更されます

例:フィルター - 都市 - A、B、C - 適用されたA、B、Cフィルター 再度来たフィルター - 市 - D、E - 戻るボタンが押された - A、B、Cフィルターを取り戻す

filterviewためのviewDidLoadが開かれたときだけでされてやって、私は

clonedFiltersData = [[NSMutableArray alloc] initWithArray:[[WMGFilterManager sharedManager] arrayForType:type]]; 

はこの正常に動作しているクローン配列にフィルタ配列を保存するが、私は で何か変更したときに[[WMGFilterManager sharedManager] arrayForType:タイプ]を

はいくつかのフィルタや何かを削除するように、実際には元の配列から削除されます。誰も配列を開始する方法を教えて、参照の影響を受けないようにすることはできますか?

答えて

0

initWithArrayにcopyItems:YESオプションを追加します。この例のように。

浅いコピーではなく深いコピーが必要です(ポインタをコピーします)。

関連する問題