問題タブ [nscopying]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
473 参照

swift - Swiftでクラスインスタンスをコピー可能にする方法は?

Objective-C では、NSCopying と copyWithZone: を実装することで、クラス インスタンスをコピー可能にすることができます。Swiftで(Foundationを使用せずに)同様のことをどのように行いますか?

0 投票する
2 に答える
151 参照

objective-c - C スタイルの配列を解放するにはどうすればよいですか?

QuantumClonesの配列を持つクラスがありますCGPoint。単一のQuantumPilotオブジェクトは、QuantumClone各レベルの最初に を作成します。次のレベルでは、QuantumPilotは速度を に記録しますQuantumClone。新しいレベルの開始時に、ゲーム ループはこのコードを実行します

しかし最終的にはゲームがリセットさQuantumCloneれ、クローンの各オブジェクトNSMutableArrayが削除されます。

に値を代入してメモリ リークを起こしていCGPoint pastVelocities[4551]ますか?

これらをリセットするにはどうすればよいですか? それらは Objective-C オブジェクトではないため、解放できません。このメモリを解放するために C 関数を呼び出す必要がありますか?

0 投票する
1 に答える
170 参照

cocoa - 既存の NSCoding メソッドを使用して NSCopying を実装しない理由

NSCoding を実装するクラスが与えられた場合、 copyWithZone: の実装をこのパターンを使用して実装してはならない理由はありますか?

0 投票する
2 に答える
1712 参照

objective-c - NSDictionary のキーが NSCopying に準拠しなければならない理由

NSDictionaryオブジェクトが のキーになるには、に準拠する必要があることに気付きましたNSCopying

これはなぜですか?すべてのキーを実装する必要があることは理解できますhashが、なぜNSCopyingですか?

0 投票する
1 に答える
544 参照

ios - PFObject のコピーの作成

私は、ユーザーが a をダウンロードしPFObjectてローカルで変更できるようにし、変更をキャンセルするか、[完了] を押すと、編集インターフェイスを閉じますが、変更を Parse にまだアップロードしない状況にあります。すべての変更を一度にデータベースに書き込むには、前の画面で [保存] をクリックする必要があります。

問題は、PFObjectが変更されると、データベースから再取得しない限り、以前の状態に戻すことができないことです。しかし、以前の状態がまだ Parse にアップロードされていない可能性があるため、Cancel を押すたびにデータベースからデータを再取得できるとは限りません (これは、ローカルにのみ保存されている変更を破棄するのを待たせる悪い UX です)。

たとえば、ユーザーが をタップして編集しPFObject、変更を加えて [完了] をクリックし、もう一度タップしてオブジェクトをさらに編集し、[キャンセル] をクリックしたとします。この場合、オブジェクトを以前の状態に戻す必要がありますが、その状態はまだ Parse にアップロードされていません。したがって、データベースからデータを再フェッチして変更を元に戻すことはできません。そうしないと、最初に行った変更が上書きされます。

この問題を解決するには、単純に を取得してPFObjectそのコピーを保存します。私はそれを一時的なオブジェクトと呼んでいます。実際のオブジェクトを格納する別のプロパティがあります。ユーザーは一時的なオブジェクトを変更し、[キャンセル] を押したときに単純に に設定しnil、代わりに [完了] を押した場合は、実際のオブジェクトを一時的なオブジェクトに等しく設定し、最後に [保存] をクリックすると、実際のオブジェクトをに保存します。データベース。そうすれば、ユーザーが変更をコミットするまで、実際のオブジェクトに変更が加えられないことを確認できます。問題は、プロトコルPFObjectを採用していないNSCopying(理由がわからない) ため、のコピーを作成できないことPFObjectです。それに加えた変更は、実際のオブジェクトに影響します。

データがコミットされ、後で保存されるタイミングを制御できるアプリの設計を変更せずに、これを解決するにはどうすればよいでしょうか? を拡張PFObjectして採用する方法はありNSCopyingますか?以前に行われたことがありますか?

オブジェクトの属性をディクショナリに保存することを検討し、代わりにユーザーがそれを編集できるようにし、コミット時にそれらの属性のそれぞれをPFObject. このソリューションの問題は、複雑な構造で発生します。このアプリでは、ユーザーが複数の を含む複数PFObjectの配列を変更できるようにします。単一の単純なPFObject.

0 投票する
1 に答える
143 参照

ios - 空の配列をコピーする意味は?

私は別のプログラマーのコードを読んでいたので、これを見つけました:

何かのトリックですか?なぜ彼は不変配列に mutableCopy を使用したのassetsですか? なぜ彼はそれを次のように作成しないのですか:

?