問題タブ [nsinvocation]

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 に答える
893 参照

image - テーブルビューセルへの画像の非同期ロード

インターネットを何週間も検索した後、ここにもたくさんの投稿がありましたが、プロジェクトにこれを実装する方法が見つからないようです。
Dropbox アカウントに plist があります。「cellPic」と呼ばれる辞書の 1 つの下にある plist の文字列の 1 つ。
ドロップボックスにある店舗の写真を表のセルに表示したい。
plist はドキュメント パスにダウンロードされます。

これまでのところ、すべて順調です...

このメソッドの下の私の TableViewController では、セルの画像の非同期ロードを実装したいと考えています。

私の目標は、画像を非同期で読み取り/ダウンロードすることですが、それがどのようになるかわかりません-写真の完全なURLアドレスを含むドキュメントパスのplistの文字列を読み取る必要がありますか、それとも写真をダウンロードする必要がありますか?サーバーから私のドキュメントに移動し、それをセルに読み込みますか?
私の場合、セルの位置が変更されているため、ユーザーの場所によって並べ替えられているため (ユーザーに最も近い店舗はテーブルの上にあります)、plist から読み取る必要があると思います。
これは私の写真の URL の 1 つ です
(必要に応じて)?
このチュートリアルでそれをやろうとしましたが、まったくうまくいきませんでした。
http://www.switchonthecode.com/tutorials/loading-images-asynchronously-on-iphone-using-nsinvocation
操作 ヘルプが適用されます!!
ありがとう!

0 投票する
4 に答える
18052 参照

objective-c - ブロックiOSを呼び出す

いくつかのブロックを呼び出そうとしましたが、EXC_BAD_ACCESSに遭遇しました。

なぜこれが起こっているのかについて何か考えはありますか?

0 投票する
0 に答える
783 参照

objective-c - prepareWithInvocationTarget、ジェスチャー、およびオブジェクトで NSUndoManager を使用する

私はある種の描画アプリを持っています。元に戻す/やり直しを実装したい。元に戻す/やり直しの元の値と新しい値を保存するのに苦労していますが。

Gestures を使用して、いくつかのものを保存する必要があります: トランスフォーム、センター、プロパティ ダイアログの場合、さらに多くのもの、Color、Font、Font-Size、Outline、Outline Color、Text It self などを保存する必要があります。

NSMutableDictionaryユーザーがシングル ジェスチャ/プロパティ ポップオーバーで変更できる属性を作成しました。

Rob の Answer forNSUndoManagerと Rotation Gestureを使用したかったのですが、彼の Solution を使用すると で動作CGAffineTransformprepareWithInvocationTargetますCGAffineTransform

ただし、渡した辞書 (OriginalAttribs、newAttribs) で を使用する場合prepareWithInvocationTargetは保持されません。NSMutableDictionary描画オブジェクトに対するアクションごとに変更されるため、ローカル iVar として使用することはできません。

私は本当にそれらを保持したくありませんが、私はretainArgumentsの一部として使用したいようです. NSInvocationそれらのコピーが必要です。

ジェスチャがアクティブな間、OrigianlCenter、OriginalTransform が変更されるため、設定を続けることができないため、これを難しくしているのはジェスチャです。

更新このリンク を見つけましたが、やりたいことに似ているようです。

NSUndoManager を次のようにセットアップします。

次に、実行時エラーが発生します。

undoAttributesWithOriginalAttributes:newAttributes:NSInvocation オブジェクト用に設定したセレクターです。ドキュメントhereによると、元に戻すマネージャーの自己ではなく、自己(ターゲット)に渡す必要があると書かれていますか?

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

objective-c - iOS NSInvocation setArgument: atIndex: ARM ビルドの構造体では機能しません

アラインされていない double または任意の 64 ビット型を含む構造体で NSInvocation の引数を設定すると、奇妙な問題が発生します (構造体の先頭にある char でオフセットします)。問題は、引数が設定された後に一部のバイトがクリアされることです。この問題は ARM7 で発生しますが、iOS シミュレーターでは発生しません。

LLVM 3.0 と Xcode 4.2 を使用しています

ここに私のコードとテスト結果があります:

NSInvocation+Extension.h


NSInvocation+Extension.m


呼び出すメソッドとデータ構造体を宣言する


呼び出しコード


ARM7 の buf の内容 (バイト 8、9、10、および 11 がゼロに設定され、double 値が台無しになります)

41 00 00 00 00 00 00 00 29 8C 67 41 42 00 00 00 02 00 00 00 43 00 00 00

i386 シミュレーターの buf の内容 (予想どおり)

41 00 00 00 00 00 00 C0 29 8C 67 41 42 00 00 00 02 00 00 00 43 00 00 00


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

ios - オブジェクトへのポインタを引数として取るメソッドを使用して NSInvocation オブジェクトを作成する方法

NSError オブジェクトへのポインターを引数として取るメソッドを使用して、NSInvocation オブジェクトを作成したいと考えています。この例は、メソッドです-

このように呼び出しを設定することを理解しています

writeToFile:Options:Error の場合: 最後の引数は、オブジェクトではなくポインターを受け取ることを想定しています。その結果、以下を実行しても機能しません -

解決策がポインターへのポインターを作成することであることは論理的に思えますが、これによりコンパイラーの警告が発生します。それを適切に実行し、メモリ管理の問題を引き起こさないようにする方法がわかりません。

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

objective-c - NSInvocation & NSError - __autorelease & メモリ クラッシャー

NSInvocations について学んでいると、メモリ管理についての理解にギャップがあるように思えます。

サンプル プロジェクトは次のとおりです。

もちろん、ここで行っているのは、呼び出しオブジェクトを NSString クラス メソッドのプロパティとして構築することだけです。

特にこのブログ投稿を読んだ後では、**errorPointer にアドレスを宣言して割り当てることによって NSError オブジェクトを処理する必要がある理由が理解できます。把握するのが少し難しいのは、ここで起こっている __autoreleases とメモリ管理です。

**errorPointer 変数はオブジェクトではないため、保持カウントはありません。NSError オブジェクトを指すメモリ アドレスを格納するのは、単にメモリです。stringWith... メソッドが NSError オブジェクトを割り当て、初期化し、自動解放し、*errorPointer = 割り当てられたメモリを設定することを理解しています。後でわかるように、NSError オブジェクトにアクセスできなくなります。これは...

  • ...自動解放プールが空になったからですか?
  • ... ARC が stringWith... の alloc + init への "release" 呼び出しを埋めたので?

それでは、呼び出しがどのように「機能する」かを見てみましょう

メモリ管理に関しては、自分が何をしているのか知っていると思っていたので、これは私にとって目を見張るものでした(少し戸惑いました)。

クラッシャーを解決するために私ができる最善の方法は、init メソッドから NSError *error 変数を取り出してグローバルにすることです。これにより、**errorPointer の属性を __autoreleasing から __strong に変更する必要がありました。しかし、操作キューで NSInvocations を何度も再利用する可能性が高いことを考えると、この修正は理想的ではないことは明らかです。また、*エラーが割り当て解除されているという私の疑いを確認するだけです

最後の WTF として、__bridge キャストを少しいじってみましたが、1. それがここで必要なものかどうかわかりません。2. 並べ替えた後、機能するものが見つかりませんでした。

これがうまくいかない理由をよりよく理解するのに役立つかもしれない洞察が欲しい.

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

objective-c - iOS-「スーパー」を参照として使用できませんか?

NSInvocationを使用して、サブクラスからスーパークラスメソッドを呼び出そうとしています。関連するコードは比較的単純で、次のようになります。

superこれは私には少し奇妙に思えます。なぜなら、それはとほぼ同じルールに従っているといつも思っていたからですself(つまり、問題のオブジェクトへの直接参照として扱われ、変数に割り当てられ、戻り値として使用されるなど)。 。これは実際にはそうではないようです。

NSInvocationとにかく、スーパークラスの実装をターゲットにする簡単な方法はありますか(selfサブクラスがスーパークラスのメソッドをオーバーライドするため、ターゲットとして使用できません)、または他のアプローチを探す必要がありますか?

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

objective-c - NSInvocation コードを ARC 互換 (既に Objective-C) に変換する支援

NSInvocation で Undo を機能させるために使用する、Matt Gallagher からの非常に優れたコードを見つけました。現在、経営陣はすべてのコードに ARC を使用することを望んでおり、すべてのコードを ARC に変換しています。この最後のピースが残っています。Matt さんには変換を行う時間がないので、ここで何か助けが得られることを願っていました。

任意の支援をいただければ幸いです!

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

NSInvocation(ForwardedConstruction).h

NSInvocation(ForwardedConstuction).m

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

objective-c - 別のクラスのメソッドを NSInvocation オブジェクトのセレクター プロパティとして設定することはできますか?

ClassA に Selector1 というメソッドがあります。

ClassB では、NSInvocation オブジェクトを作成し、Selector1 をオブジェクトのセレクターとして設定したいと考えています。これは可能ですか?これを設定する適切な方法がわかりません。

ClassB で使用しようとしているコードは次のようなものです。

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

ios - オブジェクト(iOS)で呼び出されたすべてのメッセージ呼び出しを監視する方法はありますか?

オブジェクトにメッセージを送信するたびに、セレクター名と、引数、送信者、またはNSInvocationインスタンスを取得したいだけです。可能?forwardInvocation:のようなものですが、すべての場合(すべてのメソッド呼び出し)。