Foundation(タイマー)

2010. 04. 13
解説中に出てくるデフォルトモードについて紹介します。

Cocoa Break!/Dev/ソース/Examples/App Kit/Worm』によると、『デフォルトモード(NSDefaultRunLoopMode)』との記述があります。

NSRunLoop Class Reference』でNSDefaultRunLoopModeを調べると、実行ループモードの一つと分かりました。

●実行ループモード(Run Loop Modes)

NSRunLoop.hで定義されているものが2つ有ります。

・NSDefaultRunLoopMode
・NSRunLoopCommonModes

他にもNSConnectionとNSApplicationで定義されているものが3つ有ります。

・NSConnectionReplyMode
・NSModalPanelRunLoopMode
・NSEventTrackingRunLoopMode

ただ、『NSDefaultRunLoopMode』の解説も、

NSConnectionオブジェクト以外の入力ソースを扱います
最もよく利用されている実行ループモードです

としか書いてない困ったものでして、これ以上の追求は止めました。

おそらく、アプリケーションを起動すると自動的に作られる実行ループで、イベントループやタイマーもこの上に作られる(実行ループ内で管理される)ものと思われます。


●タイマーのクラス図

Foundation
NSTimer

- (void)startTimer
{
    // タイマーを作成してスタート
    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(timerFired:) userInfo:nil repeats:YES];
}

- (void)timerFired:(NSTimer *)timer
{
    // タイマー発動時に呼び出されるメソッド
}


・scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats

デフォルトモードの現在の実行ループの中に新規にNSTimerオブジェクトを作成し、返します

seconds:タイマーの発動間隔を秒単位で指定します
0.0秒以下を指定した場合は0.1ミリ秒に補正されます

target:タイマーの発動時にaSelectorのメッセージを送るオブジェクトを指定します
このオブジェクトは、タイマーが解放されるまで保持されます

aSelector:タイマーの発動時にtargetに送るメッセージを指定します
セレクタは次のような記述に成ります

- (void)timerFireMethod:(NSTimer *)theTimer

このメソッドの引数としてタイマーは自分自身を渡します

userInfoタイマーにユーザが情報を渡したい場合に指定します
※2010.5.23訂正
タイマーがaSelectorのメソッドに渡すユーザ情報を指定します
このオブジェクトは、タイマーが解放されるまで保持されます
このパラメータはnilを指定できます

repeats:YESの場合は無効にするまでタイマー動作を繰り返します
NOの場合は一度だけタイマー動作を発動します



参考文献

NSTimer Class Reference

NSRunLoop Class Reference

Mosaic Browsing/11/2009 - 12/2009

Cocoa Break!/Dev/ソース/Examples/App Kit/Worm

仙台単身赴任生活/Mac用USBデバイス-31 ホスト側のサンプルコード

iPhone SDK 3 プログラミング大全 実践プログラミング (MacPeople Books)iPhone SDK 3 プログラミング大全 実践プログラミング (MacPeople Books)
(2009/09/08)
木下 誠

商品詳細を見る

詳解 Objective-C 2.0 第3版詳解 Objective-C 2.0 第3版
(2011/12/28)
荻原 剛志

商品詳細を見る






Bose QuietComfort 20
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
08 | 2017/09 | 10
Sun Mon Tue Wed Thu Fri Sat
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

Author:水月杏香
永遠の初心者プログラマ。

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

Bose QuietComfort 20
Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR