問題タブ [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.
objective-c - 10.6/Xcode 3.2 の NSCollectionView
NSCollectionViewItem
Xcode 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)NSCollectionView
のitemPrototype
サブクラスにバインドしました。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
にアクセスできないため、ラベルのテキストを変更できません。
「名前」ではないことを確認するために、設定しようとしている名前も記録しました。
ラベルの値を変更するには、何をする必要がありますか?
どんな助けでも大歓迎です。
iphone - プロパティ値を更新するmutableCopyWithZone
両方のクラスの変数の値を変更する機能を備えたコピーが必要なクラスがあります。簡単に言えば、これらのクラスは常に相互のクローンであり続ける必要があります。ドキュメントについての私の理解は、これも可変であると宣言されているクラスの浅いコピーを使用してこれを行うことができるということです。浅くコピーすることにより、変数のポインター値が複製され、両方のクラスで完全に一致するようになります。したがって、元の変数を更新すると、コピーも同時に更新されます。これは正しいですか?
以下に示すように、コピーしたいクラスでmutableCopyWithZoneを使用しました。これを機能させるために、NSCopyObjectメソッドとallocWithZoneメソッドの両方を試しました。クラスをコピーすることはできますが、意図したとおりに表示されますが、変数を更新しても、コピーされたクラスの値は変更されません。
infoTextViewsは、非アトミックとして宣言されたプロパティであり、コピーされるクラスのヘッダーファイルに保持されます。それに応じて、NSMutableCopyingプロトコルも実装しました。
どんな助けでも素晴らしいでしょう。
iphone - IPhone - copyWithZoneリーク
デバイスでアプリをテストすると、カスタム オブジェクトのコピーを呼び出したときにリークが返され、その理由がわかりません。
これは呼び出しです:
これは方法です:
これは、copyWithZone によって呼び出されるメソッドです。
iphone - ある NSString を別の NSString にコピーする
ある NSString を別の NSString にコピーする方法は?
このタイプのオブジェクトが 2 つあります。MyData *obj1, obj2;
まずは初期化。2番目に最初に初期化したい。
保持しない 2 番目のオブジェクトのコピーが必要です!!! 助けてください!ありがとう!
iphone - NSMutableDictionaryのキーとしてUIColorRGB黒を使用する場合の問題
UIColorオブジェクトをNSMutableDictionaryのキーとして一日中設定でき、すべてが正常で幸せです...
例えば:
それはうまくいきます...私が以下を使おうとしない限り:
それはいつも私に与えます:
-[UIDeviceRGBColor copyWithZone:]:認識されないセレクターがインスタンス0x691be80に送信されました
RGB色空間で黒を定義する理由は、この質問にとって重要ではありません。そのように定義する必要があることを知っておいてください。私が理解していないのは、なぜこれとこの色だけが問題を引き起こしているのか、そしてなぜエラーがcopyWithZoneエラーであるのかということです。
記録としては、[UIColor blackColor]がキーとして機能しますが、RGB色空間ではないため、私のアプリケーションには適していません。
iphone - iPhone : (id)copyWithZone:(NSZone *)zone : 「ゾーン」とは何ですか?
NSCopying のこのメソッドをクラスに実装してコピーを有効にする場合、ゾーン パラメータの使用は何ですか? 新しいオブジェクトを設定する場合、alloc で十分なので、allocWithZone で割り当てる必要はありません...混乱しています...
iphone - iPhone:copyWithZone:オブジェクトを返す前にリリースしますか?
copyWithZoneに関するアップルのドキュメントを読みました:「返されたオブジェクトは、それを解放する責任がある送信者によって暗黙的に保持されます」。しかし...私が返すものをどのようにリリースできますか...私は夢中になります!
コードのサンプル:
伝えられるリリースはどこにあるべきですか?私は2回保持しますか?うーん...
iphone - copyWithZoneの戻り値の所有権と保持カウント
copyWithZoneに関するアップルのドキュメントを読みました:
「返されたオブジェクトは、それを解放する責任がある送信者によって暗黙的に保持されます」。
だから私がこれを書くと:
そして私は電話します:
obj
保持されますか?自動リリースを設定しない場合、保持カウントはどうなりますか?
objective-c - NSCell が正しく表示されない
NSTableView にカスタム NSCell がありますが、正しく表示されません。テーブル ビューには適切な数のアイテムが含まれていますが、最初のアイテムを除いて空です。最初のものはセルを示していますが、NSTableView のどこかをクリックすると値がランダムに変化します。これは私の細胞と関係があると思われますcopyWithZone:
。私のセルには iVar がなく、objectValuedrawWithFrame:inView:
を描画するメソッドだけがあります。私はcopyWithZone:
戻る[[[MyCell allocWithZone: zone] init] autorelease]
他のものを返す必要がありますか?
objective-c - copyWithZone: (ディープ コピー) サブクラスでのクラッシュ
プロトコル NSCopying に準拠したコピー方法を作成しようとしています。
私は次のクラスを持っています:
メソッドで:
次の方法でメソッドを呼び出した場合:
Gene1 の copy メソッドを呼び出しているときにクラッシュします。
メソッドを別の方法で呼び出す必要がありますか?
好きです[gene1 copyWithZone:(NSZone *)]
が、どのオブジェクトを渡す必要がありますか? NSZone オブジェクトを作成する必要がありますか? または、引数として渡すことができるデフォルトのものはありますか?
助けてくれてありがとう