問題タブ [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.
iphone - copyWithZoneの問題
次の手順でUIViewControllerサブクラスのコピーを作成しようとしています。
そして私は次のエラーがあります:
ios - UILocalNotification - 変更可能なコピー
概要:
- のインスタンスをコピーし
UILocalNotification
て、新しく作成したインスタンスに変更を加えています - 次に、新しく作成されたインスタンスをスケジュールします
UILocalNotification
コピー方法
UILocalNotification
メソッドを呼び出してのインスタンスをコピーしていますcopy
質問
- 私は正しいことをしていますか、それとも別の方法を使用して変更可能なコピーを作成する必要がありますか。(
mutableCopy
は実装されていませんUILocalNotification
- copy は実際に変更可能な copy を実行しますか?
- コピーを作成する必要があります
scheduleLocalNotification:
か? とにかく新しいコピーを作成しますか?
iphone - uiviewのコピーを作成する方法(元のuiviewへのポインターではありません)
のコピーを作成したいのですが、多くのビューのコピーを頻繁に作成していて、使用が遅いためUIView
、使用したくありません。NSKeyedArchiver
NSKeyedArchiver
copy
またはについて聞いたinitWithZone:
が、グーグルで検索すると、それは良くないことがわかったUIView
。元のビューを指すコピーは必要ありません。元のビューに変更を加えると、コピーされたビューにも変更が加えられるためUIView
です。
objective-c - これは NSMutableCopying を実装するための合理的なパターンですか?
不変のオブジェクトのセットがあるため、インターフェイスを実装しようとしていNSMutableCopying
ますが、変更されたコピーを作成できる必要もあります。次のように定義されたムービーがあるとします (もちろん、実際にはもっと多くのプロパティがあります)。
私が読んだことから、ここで実装するように、コンストラクターの外部で ivar を設定する必要がある場合は、NSCopying
プライベート セッターを定義することをお勧めします。したがって、次のような実装になりますBBMovie
(これらの型はサブクラス化を許可するように設計されていないことに注意してください):
さて、実装にはプロパティのゲッターとセッターの両方があることがわかっているので、次のように簡単BBMovie
に実装できるはずです。BBMutableMovie
このアプローチに問題はありますか、または何か不足していますか?
もちろん、BBMovie の実装は、ライブラリのコンシューマによって送信された場合に設定されたメッセージに応答するため、真に不変ではないことは理解していますが、セキュリティ リスクを示さず、ライブラリの「通常」の使用範囲外。
memory - NSMutableArrayオブジェクトの取得と変更に関する問題
NSObjectからサブクラス化したクラスのカスタムオブジェクトの配列であるorganisationsと呼ばれるNSMutableArrayがあります。このサブクラスはNSXOrganisationと呼ばれます。このサブクラスは、次のようにNSCopyを実装します。
今、私は次のように配列を割り当てて初期化します:
これはすべて正常に機能します。テストのために、配列には2つのオブジェクトが含まれています。
次に、メソッドが呼び出されると、次のように配列内のオブジェクトを更新します。
ここで、 tfPropertyOne *はディスプレイ上のNSTextFieldです(適切にバインドされているなど)。NSLogでテストしたところ、正しい結果が出力されるため、これも正常に機能します。次に、配列内の別のインデックスでdisplayメソッドを呼び出して、関連する詳細を表示します。
indexはローカルNSIntegerであり、問題ではありません。次に、このオブジェクトに対して同じupdateメソッドを呼び出します。これは、明らかに正常に機能します(NSLogを使用してテストします)。
最後に、戻って配列[self displayOrganisation:0]の最初のオブジェクトを表示するために呼び出しを行うと、呼び出しは正常に機能しますが、 getPropertyOneを呼び出すとアプリがクラッシュします。
これは、Macコンソールのエラーです。
そして、これはクラッシュレポートからのものです:
誰か助けてもらえますか?オブジェクトにアクセス/作成/配列に誤って保存していますか?
ios - iOSでは、NSString = NSStringによってメモリリークが発生しますか?
私はいくつかの答えを見てきましたが、それらは十分に拡張されておらず、ARCが導入される前のものだったと思います。
したがって、2つのNSSstringがある場合、設定できますか
また
メモリリークやその他の問題を引き起こすことなく?
編集:(コピー、非アトミック)に設定されたビューコントローラまたはデリゲートプロパティはどうですか?
Edit2:NSString * al =@"String"である必要があります。これが漏れないという考えを変えないことを願っています。
objective-c - 「-copy」と「-copyWithZone:」の違いは何ですか?
copyがオブジェクトの不変コピーを作成することは知っていますが、copywithzoneがどのように機能するか、およびcopyとcopywithzoneの基本的な違いは何ですか。
ios - タイプ「id」のパラメーターに「クラス」を送信する互換性のないポインタータイプ'
xcode を更新しましたが、互換性のないポインター タイプが「クラス」をタイプ「id」のパラメーターに送信していますというエラー メッセージが表示されるようになりました
p>私が抱えているこの問題と、それを解決する方法について誰かが光を当てることができれば、本当に感謝しています。
objective-c - NSCopyingとObjective-Cのメモリ管理
送信者によって暗黙的に保持されているオブジェクトを返すAppleのNSCopyingドキュメントの状態。copyWithZone:
したがって、そのオブジェクトがに追加されると、保持カウントのバランスを保つためにオブジェクトにメッセージをNSMutableArray
送信する必要があるようです(配列はオブジェクトを保持するため)。autorelease
したがって、ある配列の内容を別の配列にディープコピーするには、次のようなものが必要です。
しかし、私はこの回答で別のアプローチに気づきました。[ret addObject:[val copy]]
メモリリークのようです。ただし、私はまったく新しいNSCopying
ので、質問したいと思いました。コピーしたオブジェクトを配列に追加する場合、保持カウントのバランスを保つために、オブジェクトに自動解放メッセージを送信する必要がありますか?
編集-詳細:Clangは、自動解放を削除した後、潜在的なメモリリークを報告します。おそらく、リンクされた回答は、送信者によって暗黙的に保持されていないcopy
オブジェクトを返すことを前提としています。
objective-c - NSCoding VS NSCopying
低レベルでのNSCodingとNSCopyingの本当の違いは何ですか?
また、それらは独立して、一緒に使用されることになっていますか、それともいつ使用するのが良いですか?