1. ホーム
  2. ios

[解決済み] UIViewはコピーできますか?

2023-06-08 23:43:45

質問

単純にこの方法で。

UIView* view2 = [view1 copy]; // view1 existed

このため、シミュレータでこのアプリを起動することができません。

保持を試してください。

UIView* view2 = [view1 retain]; // view1 existed
// modify view2 frame etc

を変更した場合 view2 に適用されます。 view1 ということですね。 view2 と同じメモリを共有します。 view1 .

なぜ UIView はコピーされるのでしょうか?その理由は何ですか?

どのように解決するのですか?

あなたのアプリは、おそらく次のような内容でクラッシュします。

 [UIView copyWithZone:]: unrecognized selector sent to instance 0x1c6280

これは、UIView がコピープロトコルを実装していないためで、コピープロトコルに対応した copyWithZone セレクタが存在しないからです。