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

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

swift - 初期化子の迅速なコピー属性

後でそれらの属性を設定するだけでなく、初期化子に渡されたオブジェクトがコピーされるようにするにはどうすればよいですか?

を使用する@NSCopyingと、Apple はcopyプロパティのような動作を実現できると言います。ただし、デフォルトでは、コピーを行うセッターを呼び出さずに、属性が割り当てられるだけです。

プロパティが不変であり、知らないうちに変更されていないことに依存したいので、これは潜在的に危険です。(NSMutableString代わりに取得するNSStringことを考えてください-コピーすると不変のインスタンスが得られます)。

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

ios - Swift 2.0 で copyWithZone を実装するには?

次のコードは、配列を作成するために Swift 2.0 で記述されています。dispatch_block_t

また、Blockクラスは次のように定義されています。

上記のコードを使用して、dispatch_block_t の配列を作成できます。しかし、この配列をパラメーターとして別の関数に渡す必要があり、この配列を渡す際に問題に直面しています。

ボタンクリックイベントでこの関数を呼び出していますが、

そして、次のスニペットを実行するとエラーが発生します。

エラーは、

タイプ '() -> ()' (0x15164018) の値を 'Swift.AnyObject' (0x101e500c) にキャストできませんでした。

クラスcopyWithZoneの関数でこのエラーが発生しています。Block

btSimplePopUp の完全なソース コードは、 https: //github.com/balram3429/btSimplePopUp/blob/master/btSimplePopUp/btSimplePopUP.m で確認できます 。

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

nsdictionary - NSDictionary からカスタム クラスへ

私は、次のようなsqliteデータベースに保存しているカスタムクラスQBChatDialogオブジェクトを持っています

次に、データベースから NSDictionary として取得しています。

QBChatDialogまたはのような値を取得するために、クラスにマップし直すにはどうすればよいですdialog.IDdialog.lastMessageText。クラスはサードパーティ API で、一部のプロパティはread-only.

ありがとう

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

swift - swift - HMCharacteristicWriteAction の HomeKit updateTargetValue がクラッシュする

アクション ( ) のターゲット値を更新しようとしていますHMCharacteristicWriteActionが、常に EXC_BAD_ACCESS (コード = 1、アドレス = 0x50) でクラッシュします。

私のコードスニペット:

ご覧のとおり、actionは nil ではなく、正しい型 ( HMCharacteristicWriteAction) です。正常に読み取ることができますtargetValue

を使用してプロジェクトを分析しましたProduct - Analyze。すべて問題ありません (警告はありません)。ゾンビも有効にしましScheme - Diagnosticsたが、まだうまくいきません。


ドキュメントによるとupdateTargetValue

私を混乱させるのはtargetValue: NSCopying. タイプIntvalue「NSCopying」に準拠していますか? 試しvalue as NSCopyingてみましtargetValueたが、良くありません。

この問題を解決する方法を教えてください。Inttoを渡しても大丈夫targetValueですか?このクラッシュの原因は何ですか?

ありがとうございました。

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

ios - 変更可能なコピーを作成するための Objective-C パターン

プロパティが「読み取り専用」として定義され、さまざまなコンポーネント間で共有される「モデル」オブジェクトが多数あります。

場合によっては、オブジェクトのローカルで変更可能なコピーを作成する必要があります (それらをローカルで変更可能な状態に使用します)。

オブジェクトは作成後に不変でなければならないため、NSMutableCopy プロトコルを実装しません。変更されたオブジェクトは、コピー + 変更操作の後に「受け渡される」可能性があります。

提案されたメカニズムはありますか、または「変更された」パラメーターを受け取るコンストラクターを実装する必要がありますか?

たとえば、JSON をネイティブ タイプに解析するオブジェクト:

コードのどこか:

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

objective-c - オブジェクト間でブロックをコピー

私はいつも、それcopyはオブジェクトをコピーするだけだと思っていました。ブロックの場合は少し違いますが、以下の場合の動きには本当に驚きました。

次のクラスのインスタンスとインスタンスがありますobjectAobjectB

objectA空です。objectB値が設定されています。objectBアプリのある時点で、破棄して のみを残したいobjectAので、 to の次の 2 つの値を注入する必要がありobjectBますobjectA

objectAブロックが新しいインスタンスにコピーされ、objectB解放されることを期待しています (それを指す参照がないため)。

しかし、代わりに、何も起こりません。ブロックは、評価される必要がありますが、再度評価されることはありません。別の方法でコピーする必要がありますか?誰かが何が起こっているのか、なぜ起こっているのかを説明したり、それを説明するドキュメントを指摘したりできますか?

- 編集 -

ブロックの設定方法のスニペット: