スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


このエントリーをはてなブックマークに追加

[NSObject performSelector]で遅延実行

特定の処理を遅延実行した場合、[NSObject performSelector]が便利。
NSTimerでタイマー呼び出しをしてもいいのだが、こっちの方がシンプルに実装できる。

とりあえずサンプル。引数にオブジェクトを指定できるので、汎用的に使えるように、NSMutableDictionaryクラスを使ってみた。(もちろん、パラメータが1つなら直接渡した方が良い)

<呼び出し側>

// パラメータを作成
NSMutableDictionary* param = [[NSMutableDictionary alloc]init];
NSNumber *modeNumber = [NSNumber numberWithInt:1];
[param setObject:modeNumber forKey:@"mode"];

// 指定関数(delayFunc)を遅延呼び出しする
[self performSelector:@selector(delayFunc:) withObject:param afterDelay:0.01];
[param release];



<遅延処理側>

- (void)delayFunc:(NSDictionary*)dic
{
    // パラメータを解析
    NSNumber *modeNumber = [dic objectForKey:@"mode"];
    int mode = [modeNumber intValue];

 ~遅延処理~
}



@selector()で遅延呼び出しする関数を指定し、withObjectで引数を指定。最後に、遅延時間(秒)をafterDelayで指定する。

様々な使用用途が考えられるが、私は時間がかかる処理でGUIが固まるのを防ぐために利用した。呼び出し側は即座に制御が返るので、インジケータでも表示させておいて、重い処理は遅延実行 という感じ。

当初はNSThreadで実装していたが、メインスレッドからでないと実行してはいけない処理があり、この方法に切り替えた。一見NSThreadと同じような動作に見えるが、こちらはあくまで遅延実行なので、メインスレッドで処理される。



このエントリーをはてなブックマークに追加

コメント

非公開コメント

No title

大変参考にさせていただきました。ありがとうございます。
ちなみに、遅延処理側の「sheetTag」とはどういった意味でしょうか??

No title

コメントありがとうございます。
sheetTagではなく、modeNumber の間違いでした。開発中のアプリのコードから抜粋したため、間違った行を抜粋していたようです。
ご指摘ありがとうございました。
iPhoneアプリ紹介
パズルナビ for パズドラ 2016
最強のコンボツール!
colorization-large-icon.png

スクリーンショットを読み込むとコンボを自動計算してくれるパズドラの攻略アプリです。


AirRuler
(簡易距離計)

リモートで簡単に距離を測定できるアプリ!
colorization-large-icon.png

目標地点に向けてiPhoneを傾けるだけで簡単に距離を測定できます。ゴルフの距離測定機能付きパターの代わりにも使えます。


補色残像アート
~見えない色が見えてくる~
白黒なのにカラーに見えてしまう不思議な映像を体験しよう!
colorization-large-icon.png

補色残像という目の錯覚を利用して、白黒写真がカラーに見える不思議な映像を作成できます。作成した映像は、アニメGIFに変換したり、Twitterに投稿することもできます。


タイピング革命
フリック練習はタイピング革命で!ネットランキングで盛り上がろう!
icon-l-typing.jpg

オンラインランキング上のプレイを閲覧できるリプレイ機能付き!フリック入力とローマ字入力に完全対応したタイピング練習アプリです。初心者も安心のトレーニングモード付き。

★なんと!あのAppBank様に紹介して頂きました!!
typing-sale-led.gif


簡単3Dカメラ
iPhoneで手軽に3D写真を楽しもう!平行法/交差法/アナグリフ/グラグラ3Dに対応。
icon-l-3d.jpg

2枚の写真を撮影するだけで、裸眼で立体視できる3D写真が作成できます。85円でステレオ写真もアナグリフも楽しめるのは簡単3Dカメラだけ!

プロフィール

あらきんぐ☆

Author:あらきんぐ☆
はじめまして。あらきんぐです。
4月からiPhoneを購入し、その魅力に取り付かれて、気がついたらアプリ開発の道へ!仕事でプログラム開発をしていますが、基本「動けばOK!」な適当エンジニアです。適当でもアプリは作れる!っていう事を、ブログを通じて証明していきたと思います。

最新記事
最新コメント
最新トラックバック
カテゴリ
FC2カウンター
全記事表示リンク

全ての記事を表示する

Twitter
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
アクセスランキング
[ジャンルランキング]
コンピュータ
327位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
41位
アクセスランキングを見る>>
オススメ商品
iPhone/iPodと一般オーディオを繋ぐ貴重なアイテム!
アプライドオリジナルアイテム MBB...

アプライドオリジナルアイテム MBB...
価格:3,980円(税込、送料別)

開発中級者にオススメ!「こんなことができるんだ!」と驚かされる一冊
【送料無料】iPhone...

【送料無料】iPhone...
価格:1,500円(税込、送料別)

安い!シンプル!カッコいい!
希少なiPhone対応キーボード内蔵ケース
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。