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

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

iphone - バックグラウンドタスクが完了したときにメインUIスレッドにどのように示すのですか? (SelectorInBackground を実行)

バックグラウンド タスクが完了したときに、iPhone アプリの IOS プログラムでメイン UI スレッドへの通知を取得するにはどうすればよいですか?

バックグラウンド

  • iPhone アプリケーションのスプラッシュ画面に UIActivityIndi​​cator を追加する方法の概念に従って、読み込みインジケーターをセットアップしようとしています。
  • AppDeleteで「performSelectorInBackground」を使用してモデルデータをロードしようとしていました
  • したがって、必要なのは RootViewController で、バックグラウンドでデータのロードが完了したことを通知して、(a) テーブルビューをデータで更新し、(b) アクティビティ インジケーターを削除できるようにすることです。
  • 私はここで物事を行う方法を次のように仮定しています:
    • App Delegate didFinishLaunchingWithOptions でモデル データの読み込みをバックグラウンドに渡す
    • AppDelegate は RootViewController をロードし、すぐにアクティビティ インジケーターをセットアップします
    • データがバックグラウンドでロードされると、これが完了したことを RootViewController (? この質問の理由) に示す必要があります。
    • 2番目の質問は、おそらくバックグラウンドタスクが終了したことを示すときでもあります.RootviewControllerは、アクティビティインジケーターを無効にする前に、UIが(アクティビティインジケーターなどで)セットアップされたことをどのように確認できますか
0 投票する
3 に答える
2789 参照

objective-c - PerformSelectorの実行:IDではなくdoubleを返すオブジェクトに対して

オブジェクトに対して任意のセレクターを実行するにはどうすればよいですか?その戻り値はdoubleです。たとえば、メソッド-(double)blahを持つobjAがあります。

どうすればよいdouble res = [obj performSelector:@selector(blah)];ですか?PerformSelectorはタイプオブジェクトを返すidので、idからNSInteger、doubleにキャストする必要があります-精度が低下しますか?

また、実行時にCPUを大量に消費するため、obj (つまり、noおよびno )は使用しません。methodSignatureForSelectorNSMethodSignatureNSInvocation

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

iphone - scheduleTimerWithTimeInterval と iOS 5.0 での遅延を伴う performselector の比較

私は、scheduledTimerWithTimeInterval で関数呼び出しを行っています。特定のWebサービスについてxmlの解析が完了しているかどうかを確認し、正常な応答を取得した後、didEndElementメソッドでタイマーを無効にしています。

今、私は iOS 5.0 で問題に直面しており、他の iOS バージョンでは問題なく動作しています。iOS 5.0 では、関数 stopWS をいつでも呼び出すことができます。その解決策があれば教えてください。

そして今、私は遅延を伴う performselector を実装し、解析が完了したかどうかを識別するために stopWS にブール変数を設定しています。これの間に大きな違いがあることを知りたいだけですか?この解決策は私の問題に有効ですか?

他の方法が存在する場合は、私に提案してください、ありがとう。

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

iphone - findTheAppropriateSelectorForTheCurrentSituation()とそのコンテンツとは何ですか?

ディスカッションperformSelectorを参照すると、次の行でメソッドを呼び出すことができることが説明されています。

SEL aSelector = findTheAppropriateSelectorForTheCurrentSituation();
[anObject PerformSelector:aSelector];

私の質問は、次のメソッドの内容は何ですか:
findTheAppropriateSelectorForTheCurrentSituation()?//私にとって最も重要な質問

そして別の質問は、このコードを使用するとなぜ警告が表示されるのかということです。

1.警告:関数'findTheAppropriateSelectorForTheCurrentSituation'の暗黙の宣言2.
警告:初期化により、キャストなしで整数からポインターが作成されます
3. "_ findTheAppropriateSelectorForTheCurrentSituation"、参照元:

よろしくお願いします

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

iphone - performSelector afterDelay を使用した CAAnimation

UIViewのサブクラスでCALayerを回転させようとしている基本的なCAAnimationの例をいじっています。まず、背景が赤の新しい CALayer を作成し、それを self.layer に挿入します。次に、不透明度の変更でトリガーされるはずの CAAnimation を作成し、それを CALayer に適用すると、期待どおりにスピンします。

奇妙なことに、performSelector:withObject:afterDelay: を使用してまったく同じアニメーションを適用しようとすると、CALayer はアニメーション化されなくなりますが、不透明度は変化します。さらに奇妙なことに、performSelector:withObject:afterDelay: を使用して、ほぼ同じコードを使用して self.layer をアニメーション化すると、機能します。

何が起こっているかについてのアイデアはありますか?これが私のコードです:

これが私のインターフェースです

[UIScreen mainScreen].applicationFrame注:アプリ デリゲート内の from に等しいフレームを使用して、このビューをインスタンス化しています。

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

iphone - iPhone performSelectorInBackground

私はこの問題を抱えています:これは、「performSelectorInBackground」メソッドを作成する appDelegate ファイルの一部です。

まず、スプラッシュ スクリーンを追加し、場所を取得してバックグラウンド メソッドを呼び出します。これはバックグラウンド メソッドの内容です。

データをダウンロードし、データのバージョンを確認し、アプリケーションの文字列を設定し、メイン スレッド メソッドを呼び出して、ここでタブ バー コントローラー コードを作成します。

ここでは、タブ バー コントローラーを作成し、スプラッシュ スクリーンを削除します。次に、firstViewController を開始します。

問題は、私の firstViewController で現在の場所を表示することですが、それは間違っています。正しいこともありますが、間違っていることもよくあります。どこに問題がありますか? バックグラウンドスレッドが終了したかどうかを確認する方法はありますか? または、私の問題に対する他の解決策(必要なのは、アクティビティインジケーターといくつかのメッセージを含むスプラッシュを表示することだけです(このメッセージは、init、get locationなどのメソッドで変更されます)。次に、場所を取得し、スプラッシュを削除し、firstViewControllerを表示する必要があります)。 .. どうもありがとう

編集:ここに場所のコードがあります:

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

objective-c - 複数の引数を持つ iOS performSelectorOnMainThread

別のスレッドからメインスレッドでセレクターを実行したいのですが、セレクターには次のような複数の引数があります。

-(void) doSomethingWith:(int) a b:(float)b c:(float)c d:(float)d e:(float)e { //... }

どうすればこれを動作させることができperformSelectorOnMainThread: withObject: waitUntilDone:ますか?

編集

なぜこれが必要なのかを説明したいと思います。

私はメイン スレッドで UIImageViews を使用しており、別のスレッドでそれらの計算を行います。私は多くの計算を使用するので、メイン スレッドですべてを作成すると、アプリが遅くなります。UI要素はメインスレッドでのみ操作できることを知っています。これが、メインスレッドが遅延なしでタッチイベントをリッスンできるように、このように動作させたい理由です。

0 投票する
10 に答える
97151 参照

iphone - iOS - 複数の引数と afterDelay を使用して performSelector を実装する方法は?

私はiOS初心者です。次のようなセレクターメソッドがあります-

私はこのようなものを実装しようとしています -

しかし、それは私に言うエラーを与えます-

私が欠けているものに関するアイデアはありますか?

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

objective-c - Objective-c performSelector: vs performSelector:withObject

を呼び出すこと[myObject performSelector:@selector(something) withObject:nil];は、単に呼び出すことと同じ[myObject performSelector:@selector(something)];ですか?

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

ios - performSelector:withObject:afterDelay: NSOperation 内

NSOperationによって管理されるいくつかのオブジェクト内でいくつかのコードを実行していNSOperationQueueます。コードには、 を使用した遅延メソッド呼び出しも含まれていますperformSelector:withObject:afterDelay:

問題は、遅延して呼び出されるべき対応するセレクターがまったく呼び出されないことです。

StackOverflow question に対するこの回答を読んだ後、NSOperationすでに終了しており、そのスレッドがもう存在していないという事実が原因であり、セレクタへのスケジュールされた呼び出しを「忘れて」いると思います。

どうすればこれを回避できますか? 内のメソッドへの遅延呼び出しを行うにはどうすればよいNSOperationですか?