問題タブ [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.
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
操作 ヘルプが適用されます!!
ありがとう!
objective-c - ブロックiOSを呼び出す
いくつかのブロックを呼び出そうとしましたが、EXC_BAD_ACCESSに遭遇しました。
なぜこれが起こっているのかについて何か考えはありますか?
objective-c - prepareWithInvocationTarget、ジェスチャー、およびオブジェクトで NSUndoManager を使用する
私はある種の描画アプリを持っています。元に戻す/やり直しを実装したい。元に戻す/やり直しの元の値と新しい値を保存するのに苦労していますが。
Gestures を使用して、いくつかのものを保存する必要があります: トランスフォーム、センター、プロパティ ダイアログの場合、さらに多くのもの、Color、Font、Font-Size、Outline、Outline Color、Text It self などを保存する必要があります。
NSMutableDictionary
ユーザーがシングル ジェスチャ/プロパティ ポップオーバーで変更できる属性を作成しました。
Rob の Answer forNSUndoManager
と Rotation Gestureを使用したかったのですが、彼の Solution を使用すると で動作CGAffineTransform
し prepareWithInvocationTarget
ますCGAffineTransform
。
ただし、渡した辞書 (OriginalAttribs、newAttribs) で を使用する場合prepareWithInvocationTarget
は保持されません。NSMutableDictionary
描画オブジェクトに対するアクションごとに変更されるため、ローカル iVar として使用することはできません。
私は本当にそれらを保持したくありませんが、私はretainArguments
の一部として使用したいようです. NSInvocation
それらのコピーが必要です。
ジェスチャがアクティブな間、OrigianlCenter、OriginalTransform が変更されるため、設定を続けることができないため、これを難しくしているのはジェスチャです。
更新このリンク を見つけましたが、やりたいことに似ているようです。
NSUndoManager を次のようにセットアップします。
次に、実行時エラーが発生します。
undoAttributesWithOriginalAttributes:newAttributes:
NSInvocation オブジェクト用に設定したセレクターです。ドキュメントhereによると、元に戻すマネージャーの自己ではなく、自己(ターゲット)に渡す必要があると書かれていますか?
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
ios - オブジェクトへのポインタを引数として取るメソッドを使用して NSInvocation オブジェクトを作成する方法
NSError オブジェクトへのポインターを引数として取るメソッドを使用して、NSInvocation オブジェクトを作成したいと考えています。この例は、メソッドです-
このように呼び出しを設定することを理解しています
writeToFile:Options:Error の場合: 最後の引数は、オブジェクトではなくポインターを受け取ることを想定しています。その結果、以下を実行しても機能しません -
解決策がポインターへのポインターを作成することであることは論理的に思えますが、これによりコンパイラーの警告が発生します。それを適切に実行し、メモリ管理の問題を引き起こさないようにする方法がわかりません。
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. 並べ替えた後、機能するものが見つかりませんでした。
これがうまくいかない理由をよりよく理解するのに役立つかもしれない洞察が欲しい.
objective-c - iOS-「スーパー」を参照として使用できませんか?
NSInvocation
を使用して、サブクラスからスーパークラスメソッドを呼び出そうとしています。関連するコードは比較的単純で、次のようになります。
super
これは私には少し奇妙に思えます。なぜなら、それはとほぼ同じルールに従っているといつも思っていたからですself
(つまり、問題のオブジェクトへの直接参照として扱われ、変数に割り当てられ、戻り値として使用されるなど)。 。これは実際にはそうではないようです。
NSInvocation
とにかく、スーパークラスの実装をターゲットにする簡単な方法はありますか(self
サブクラスがスーパークラスのメソッドをオーバーライドするため、ターゲットとして使用できません)、または他のアプローチを探す必要がありますか?
objective-c - NSInvocation コードを ARC 互換 (既に Objective-C) に変換する支援
NSInvocation で Undo を機能させるために使用する、Matt Gallagher からの非常に優れたコードを見つけました。現在、経営陣はすべてのコードに ARC を使用することを望んでおり、すべてのコードを ARC に変換しています。この最後のピースが残っています。Matt さんには変換を行う時間がないので、ここで何か助けが得られることを願っていました。
任意の支援をいただければ幸いです!
ありがとうございました!
NSInvocation(ForwardedConstruction).h
NSInvocation(ForwardedConstuction).m
objective-c - 別のクラスのメソッドを NSInvocation オブジェクトのセレクター プロパティとして設定することはできますか?
ClassA に Selector1 というメソッドがあります。
ClassB では、NSInvocation オブジェクトを作成し、Selector1 をオブジェクトのセレクターとして設定したいと考えています。これは可能ですか?これを設定する適切な方法がわかりません。
ClassB で使用しようとしているコードは次のようなものです。
ios - オブジェクト(iOS)で呼び出されたすべてのメッセージ呼び出しを監視する方法はありますか?
オブジェクトにメッセージを送信するたびに、セレクター名と、引数、送信者、またはNSInvocationインスタンスを取得したいだけです。可能?forwardInvocation:のようなものですが、すべての場合(すべてのメソッド呼び出し)。