問題タブ [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.

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

objective-c - 10.6/Xcode 3.2 の NSCollectionView

NSCollectionViewItemXcode 3.1.2では、サブクラスのnib を次のNSCollectionViewItemようにロードしていました。

10.6 未満の Xcode 3.2 では、同じメソッドでエラーが発生することはありませんが、NSCollectionViewどちらのビューも読み込まれません。

ビューを表示するために他に何かする必要がありますか? NSCollectionItemまたは、スーパークラスをに変更することで、これを行うより良い方法はありNSViewControllerますか?

結局のところ、copyWithZoneこの標準機能を実現するためにオーバーライドすることは、私には常にハックのように思えました。IB で使用されるペン先を指定できるようにすべきだと思いますが、Apple はそうは考えていないようです。

ドキュメントで利用可能な例を見ましたが、を使用してNSCollectionViewItemプログラムでインスタンス化さinitWithNibNameれていますが、IBで作成したいと思います。

更新

kperryua が提案したことを実行しましたが、今では からアウトレットにアクセスできませんNSCollectionViewItem。これが私がやろうとしていることです:

ラベル名をファイル所有者にバインドしました。これは私のNSCollectionViewItem. これは 10.5 で完全に機能していましたが、現在はアウトレットが割り当てられていません (GDB で確認しました)。

バインディングを示す画像 http://img21.imageshack.us/img21/671/picya.png

更新 2 :

また、を(PersonController)NSCollectionViewitemPrototypeサブクラスにバインドしました。NSCollectionViewItem

バインディングを示す画像 http://img503.imageshack.us/img503/4672/pic2d.png

File's Ownerこれで、 のPersonView.nibと のitemPrototypeの両方がNSCollectionViewサブクラスを指しています。

コンソール出力を示す画像 http://img340.imageshack.us/img340/6184/pic3.png

スクリーンショットでわかるように、アイテムは表示されますが、コンセントlabelNameにアクセスできないため、ラベルのテキストを変更できません。

「名前」ではないことを確認するために、設定しようとしている名前も記録しました。

ラベルの値を変更するには、何をする必要がありますか?

どんな助けでも大歓迎です。

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

iphone - プロパティ値を更新するmutableCopyWithZone

両方のクラスの変数の値を変更する機能を備えたコピーが必要なクラスがあります。簡単に言えば、これらのクラスは常に相互のクローンであり続ける必要があります。ドキュメントについての私の理解は、これも可変であると宣言されているクラスの浅いコピーを使用してこれを行うことができるということです。浅くコピーすることにより、変数のポインター値が複製され、両方のクラスで完全に一致するようになります。したがって、元の変数を更新すると、コピーも同時に更新されます。これは正しいですか?

以下に示すように、コピーしたいクラスでmutableCopyWithZoneを使用しました。これを機能させるために、NSCopyObjectメソッドとallocWithZoneメソッドの両方を試しました。クラスをコピーすることはできますが、意図したとおりに表示されますが、変数を更新しても、コピーされたクラスの値は変更されません。

infoTextViewsは、非アトミックとして宣言されたプロパティであり、コピーされるクラスのヘッダーファイルに保持されます。それに応じて、NSMutableCopyingプロトコルも実装しました。

どんな助けでも素晴らしいでしょう。

0 投票する
3 に答える
1991 参照

iphone - IPhone - copyWithZoneリーク

デバイスでアプリをテストすると、カスタム オブジェクトのコピーを呼び出したときにリークが返され、その理由がわかりません。

これは呼び出しです:

これは方法です:

これは、copyWithZone によって呼び出されるメソッドです。

0 投票する
3 に答える
16443 参照

iphone - ある NSString を別の NSString にコピーする

ある NSString を別の NSString にコピーする方法は?

このタイプのオブジェクトが 2 つあります。MyData *obj1, obj2;

まずは初期化。2番目に最初に初期化したい。

保持しない 2 番目のオブジェクトのコピーが必要です!!! 助けてください!ありがとう!

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

iphone - NSMutableDictionaryのキーとしてUIColorRGB黒を使用する場合の問題

UIColorオブジェクトをNSMutableDictionaryのキーとして一日中設定でき、すべてが正常で幸せです...

例えば:

それはうまくいきます...私が以下を使おうとしない限り:

それはいつも私に与えます:

-[UIDeviceRGBColor copyWithZone:]:認識されないセレクターがインスタンス0x691be80に送信されました

RGB色空間で黒を定義する理由は、この質問にとって重要ではありません。そのように定義する必要があることを知っておいてください。私が理解していないのは、なぜこれとこの色だけが問題を引き起こしているのか、そしてなぜエラーがcopyWithZoneエラーであるのかということです。

記録としては、[UIColor blackColor]がキーとして機能しますが、RGB色空間ではないため、私のアプリケーションには適していません。

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

iphone - iPhone : (id)copyWithZone:(NSZone *)zone : 「ゾーン」とは何ですか?

NSCopying のこのメソッドをクラスに実装してコピーを有効にする場合、ゾーン パラメータの使用は何ですか? 新しいオブジェクトを設定する場合、alloc で十分なので、allocWithZone で割り当てる必要はありません...混乱しています...

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

iphone - iPhone:copyWithZone:オブジェクトを返す前にリリースしますか?

copyWithZoneに関するアップルのドキュメントを読みました:「返されたオブジェクトは、それを解放する責任がある送信者によって暗黙的に保持されます」。しかし...私が返すものをどのようにリリースできますか...私は夢中になります!

コードのサンプル:

伝えられるリリースはどこにあるべきですか?私は2回保持しますか?うーん...

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

iphone - copyWithZoneの戻り値の所有権と保持カウント

copyWithZoneに関するアップルのドキュメントを読みました:

「返されたオブジェクトは、それを解放する責任がある送信者によって暗黙的に保持されます」。

だから私がこれを書くと:

そして私は電話します:

obj保持されますか?自動リリースを設定しない場合、保持カウントはどうなりますか?

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

objective-c - NSCell が正しく表示されない

NSTableView にカスタム NSCell がありますが、正しく表示されません。テーブル ビューには適切な数のアイテムが含まれていますが、最初のアイテムを除いて空です。最初のものはセルを示していますが、NSTableView のどこかをクリックすると値がランダムに変化します。これは私の細胞と関係があると思われますcopyWithZone:。私のセルには iVar がなく、objectValuedrawWithFrame:inView:を描画するメソッドだけがあります。私はcopyWithZone:戻る[[[MyCell allocWithZone: zone] init] autorelease]

他のものを返す必要がありますか?

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

objective-c - copyWithZone: (ディープ コピー) サブクラスでのクラッシュ

プロトコル NSCopying に準拠したコピー方法を作成しようとしています。

私は次のクラスを持っています:

メソッドで:

次の方法でメソッドを呼び出した場合:

Gene1 の copy メソッドを呼び出しているときにクラッシュします。

メソッドを別の方法で呼び出す必要がありますか?

好きです[gene1 copyWithZone:(NSZone *)]が、どのオブジェクトを渡す必要がありますか? NSZone オブジェクトを作成する必要がありますか? または、引数として渡すことができるデフォルトのものはありますか?

助けてくれてありがとう