問題タブ [copywithzone]
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.
ios - エラー: 'NSObject' の可視の @interface がセレクター 'copyWithZone:' を宣言していません
クラス オブジェクトのディープ コピーを許可したいので、copyWithZone を実装しようとしていますが、呼び出し[super copyWithZone:zone]
でエラーが発生します。
このクラスのディープ コピーを作成するにはどうすればよいですか?
objective-c - 「親」プロパティを正しく NSCopying して、既にコピーされた親を指すようにする
クラス B のプロパティを含むクラス A があります。クラス B には、その「親」クラス A への弱い参照があります。両方のクラスが NSCopying を実装しています。
クラス B で NSCopying をどのように実装する必要があるかはわかりません。2 つの明白な選択肢があります。
- 親プロパティをコピーしたクラスに割り当てます
- 親プロパティをコピーして、コピーしたクラスに割り当てます
最初のケースでは、B の親プロパティは元の A を指します。2 番目のケースでは、親プロパティは完全に新しいコピーです。
NSCopying のプロセス中に親プロパティが新しく作成された A のコピーを指すように、クラス B を正しくコピーするにはどうすればよいですか?
最も簡単な方法は、クラス A の copyWithZone: から親プロパティを更新することだと思います。しかし、クラス B 内からそれを行う方法はありますか?
ios - mutableCopyWithZone と copyWithZone を適切に実装する方法
私はそれについて他のいくつかのトピックを読みましたが、それでも私は迷っています.
「読み取り専用」プロパティのみを持つ不変オブジェクトと、「読み取り書き込み」プロパティのみを持つ可変オブジェクトの 2 種類のオブジェクトを作成したいと考えています。
それらを EXCar と EXMutableCar と呼びましょう。
EXCar は NSObject のサブクラスで、EXMutableCar は EXCar のサブクラスです。
ExCar はそのインターフェースに
EXMutableCar はそのインターフェースに
そのため、サブクラスの EXMutableCar を使用するときに、EXCar のプロパティを「開きます」。そして、それは可変です。問題は、それらの間で適切にコピーすることです。
EXCar に mutableCopyWithZone を実装しました:
最初の質問、それは良い方法ですか?(ツバメコピーが欲しい)
問題は copyWithZone にあります。EXCar のプロパティは読み取り専用であるため、EXCar でも EXMutableCar でも EXCar の新しいインスタンスを作成して、そのプロパティを次のように入力することはできません。
そして、15 個のプロパティを渡す "init" メソッドを実際に実行したくはありません (確かに、EXCar は一例です。実際のクラスは多くのプロパティでいっぱいです)。また、通常はサーバーからの JSON メッセージから開始されるため、複雑な init メソッドは必要ありません。
2番目の質問はそうです、私のクラスを不変に保つ copyWithZone を行う方法は?
ご協力いただきありがとうございます :)
objective-c - ディープ コピー - copyWithZone のこれら 2 つの実装は異なりますか?
copyWithZone を実装するための 2 つの少し異なる方法を見てきました。彼らは違うのですか?
最初のコード:
そして2番目のコード
それらが異なる場合、どちらがより正しいですか? 1. 1stの【セルフクラス】と混同しました。Objective C のメタクラスについては知っていますが、そのコードのチャンクで必要ですか? 2. copy.name = self.name; vs another.obj = [obj copyWithZone: zone] 上記の違いは何ですか?
ios - iOSでコアデータを取得したいときのエラー
マップ ビューでコア データを検索したいのですが、データを検索できません。このエラーが発生するのを助けてください。
その文字列の目的を出力したいとき
ios - iOS カスタム オブジェクトのコピー
次を使用してカスタムオブジェクトをロードします。
数回のループで loadNibNamed アクションを 100 回も実行しないようにするために、このオブジェクトを「基本」オブジェクトとして使用し、さまざまな情報を入力しますが、常に同じ設計に基づいています (実際には UICollectionView のように)。
私の最初の動きは、ループに次のようなものを設定することでした:
残念ながら、MyViewItem クラスは「copyWithZone」にアクセスしようとしましたが、実装していませんでした。この時点で、NSObject を継承しようとしましたが (すべての NSObject が「コピー」メソッドを実装していると思います)、問題は同じエラーのままです。そこで、NSCopying を継承し、copyWithZone メソッドを実装しようとしましたが、これは次のとおりです (ただし、機能しません)。
何が欠けていますか?コピーに関する多くの問題を読みましたが、私の問題を解決できませんでした:(ありがとう!
ios - UITableViewCell copyWithZone 認識されないセレクターがインスタンスに送信されました
KVO を使用してカスタム tableviewcell (DHtableViewCell) の値を更新しようとしています。このエラーが発生し続けます。これと同じ例外が他にもあることは承知していますが、それらの解決策は役に立ちません。
tableView:cellForIndexPath を実装するクラスは、description というプロパティを設定します。
コードの仕組みは、tableview:cellForIndexpath メソッドで cell.description プロパティを設定することです。次に、オブザーバーは値が変更されたことを確認し、対応する UILabel のテキストを更新します。
私は困惑しています。copyWithZone を呼び出そうとしているのはなぜですか? どうすればこれを回避できますか?