問題タブ [performselector]
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.
ios - iOS:ユーザーが操作/スクロールしている間にアクションを実行します
遅延後にアプリケーションにアクションを実行させようとしていますが、ユーザーがを操作/スクロールしている間に実行する必要がありますUIScrollView
。
performSelector:withObject:afterDelay
なぜどちらも発砲しないのか、発砲するのかわかりませんscheduledTimerWithTimeInterval:target:selector:userInfo:repeats:
。バックグラウンドスレッド上にあるからですか?
何か提案や助けはありますか?
ipad - PerformSelector:withObject:afterDelay:モーダルビューコントローラーで機能していません
モーダルビューコントローラーが表示され、インターネット上のサービスをチェックし、完了したら自分自身を閉じます。ペン先には、アクティビティインジケータと、何が起こっているかをユーザーに通知するためのラベルが含まれています。
更新が完了すると、ラベルが「更新完了」に変わり、ViewControllerが閉じられます。ただし、テキストが消える前にユーザーがテキストを確認できるように、却下を数秒間遅らせたいと思います。だから私はこれをしました:
しかし、何らかの理由で、セレクターが呼び出されることはありません。私もモードで実行してみましたNSRunLoopCommonModes
が、それも機能しません。
私は何か間違ったことをしているに違いないが、何がわからない...
編集:デリゲートコールバックは実際には内でNSOperationQueue
発生しています。これは、メッセージをView Controllerに送り返すときに、同じスレッド上にないことを意味している可能性がありますか?だから私は試しました
に続く
しかし、performSelectorはここでも機能していないようです。
iphone - ファイルのダウンロード中にULabelをすぐに更新する
NSURLConnectionを使用してファイルをダウンロードしています。ビューにUILabelがあり、現在ダウンロード中のファイルを表示する必要があります。UILabelは、開始時と終了時に更新されます。10個のファイルをダウンロードしているとしましょう。ダウンロードを開始する前とダウンロードが完了した後、ラベルテキストを設定できます。
私が呼び出そうとしているメソッドがメインスレッドで実行されていないことは理解できますが、
そこで、次のコードを使用してメインスレッドで実行しました。
と方法は
これも機能していないようです。私はここで何か間違ったことをしていますか?
ラベルをすぐに更新する方法を教えてもらえますか?
ios - iOSでのperformSelectorの使用とは
PerformSelectorの役割は何ですか?
比較:
と
どちらも私にとっては元気です。これら2つの違いは何ですか。[self btnClicked]
および[self performSelector:@selector(btnClicked)]
;
objective-c - PerformSelector:メソッドで認識されないセレクターエラー
電話する
[delegate addText:button.titleLabel.text withSelector:@selector(addElement:) fromKeyboard:self.name]
これに対応します
ただし、tempDataでperformセレクターメソッドを呼び出すと、エラーが発生します。SelectorNameを(addElement :)に置き換えると、正常に機能します。
objective-c - UIKitにイベント処理が組み込まれたベース/ユーティリティクラスはありますか?
複数のターゲットとセレクターを追加できるUIButtonの動作に似た「イベントリスト」を持つクラスを探しています。
書くのは簡単ですが、Appleがすでに解決策を提供しているのであれば、維持するコードを増やすよりも、これを使用したいと思います。
ノート:
これは非ビジュアルクラス用であるため、UI固有のものは使用したくありません。
編集:
スタックされたNSDictionaryインスタンスを使用して、独自の基本的なイベントディスパッチャータイプのクラスをロールすることになりました。
ios - UIBarButtonItem:ターゲットアクション呼び出しとperformSelector:withObjectのフレームの扱いが異なります:
UIBarButtonItem*buttonがあります。ユーザーがボタンを押すと、ウィンドウがポップアップするという考え方です。これは、ボタンのターゲット/アクションで宣言されます(つまり、ボタンをタップすると呼び出します
ここで、送信者はUIBarButtonItemです。
showMyWindow:メソッドでは、ポップアップウィンドウの描画には、送信者のフレームが必要です。現在、UIBarButtonItemは通常、そのフレームにアクセスすることを許可していません。ちょっとしたハックとして、送信者をUIViewにキャストしてから、このUIViewのフレームにアクセスしました。これがうまくいくとは思いませんでしたが、驚くべきことに、うまくいきました。
ただし、他の場所でshowMyWindow:メソッドも呼び出したいと思います。だから私はこのコード行を持っています:
ここで、私のアプリがクラッシュします。私はこれに問題を正確に特定しました:
重要なのは、target-actionを使用してメソッドを呼び出すと、このキャスト+フレームへのアクセスを実行できますが、performSelector:withObjectを使用する場合は実行できません。
なぜ違いがあるのですか?なぜこのキャストを実行できるのに、他のケースでは実行できないのですか?
ありがとう。
ios - メインスレッドから呼び出されたメソッド内からメソッドを呼び出す
appDelegateから次のようにクラスメソッドを呼び出しました。
このメソッドは他のメソッドを呼び出します。
RankAndSMProcessのDoRankingAndSocialMediaProcessingメソッド内から呼び出されるすべてのメソッドは、バックグラウンドスレッドのDoRankingAndSocialMediaProcessingと同じ方法で呼び出す必要がありますか?または、ここに別の潜在的な問題がありますか?
現在、新しいデータが収集されていないため、どの処理メソッドも実行されていないと思います。
バックグラウンドで実行する呼び出しを変更する前に、すべてのメソッドとプロセス全体が期待どおりに機能しました。
objective-c - 不明なタイプのクラスで静的メソッドを呼び出す
テストメソッドで本質的に何も知らないクラスでクラスメソッドを呼び出そうとするという興味深い問題があります。その継承とそれが実装する可能性のあるプロトコルを調べることはできますが、NSInvocation に縛られずにメソッドを呼び出す簡単な方法がわかりません。以下のコードは、大雑把ではありますが、私が抱えている問題を実証しようとしています。
実装を取得するためのメソッドはインスタンス バリアントを返すようで、静的クラス自体で起動することはできません。
私の選択肢は呼び出しに限定されていますか、それとも明らかなことを見逃していて、自分自身を蹴る必要がありますか?
よろしくお願いいたします。
xcode - performSelector で実行されるメソッドの objc_retain でのクラッシュ
コードに objc_retains を自動挿入する ARC に関連して、この奇妙なクラッシュが発生しました。
次の2つのクラスがあります。
ある時点で、次のように MenuItem をインスタンス化します。
次に、他の場所でperformAction
メニュー項目を呼び出します。
の実装でsomeMethod
クラッシュします:
なぜこうなった?