インスタンスに特定のメソッドが実装されているか確認する

クラスのイベントを通知するためにid型のdelegateをプロパティで公開すると思いますが、そのdelegateが特定のメソッドを実装しているかを確認する方法です。

例えば
itemTouched:・・ item:・・
というようなメソッドが存在するか確認する場合には下記の通り


if (self.delegate && [self.delegate respondsToSelector:@selector(itemTouched:item:)])
{
  [self.delegate itemTouched:self item:item];
}

アプリケーションの設定情報を保存する

NSUserDefaultsというクラスを使うと簡単に各種設定値を保存する事ができる。

使い方は下記を見てもらえば分かる通り、すごくシンプル。

//NSUserDefaultsの初期値を設定する
-(void)initConfigrations
{
  NSMutableDictionary* keyValues = [NSMutableDictionarydictionary];

  [keyValues setObject:@"0" forKey:@"KeyA"];
  [keyValues setObject:@"0" forKey:@"KeyB"];

  [[NSUserDefaults standardUserDefaults] registerDefaults:keyValues];
}

//設定をユーザ設定に保存する
-(void)saveConfigrations
{
  NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

  [defaults setInteger:self.propA forKey:@"KeyA"];
  [defaults setInteger:self.propB forKey:@"KeyB"];

  [defaults synchronize];
}

//ユーザ設定から設定内容を読み込む
-(void)loadConfigrations
{
  NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
 
  self.propA = [defaults integerForKey:@"KeyA"];
  self.propB = [defaults integerForKey:@"KeyB"];
}

ちなみに削除は removeObjectForKey で可能

WPでソースコードを表示

いろいろなサイトできれいにソースコードが表示されているので、私もまねてみます。

今回は「SyntaxHighlighter Evolved」ってのを導入してみた。

objective-cのソースを表示する時は

[objc]
ソースコード
[/objc]

って感じらしい。([]は半角で)

@interface HogeObject : NSObject
{
 int counter;
}

-(void)doHogehoge;

@end

 

 

 

iPhoneの自動ロック(スリープ)を無効にする

UIApplicationクラスのidleTimerDisabledプロパティにYESをセットすればOk

[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

 

タイミング的にはapplicationDidFinishLaunchingあたりに書けば良いのではないでしょうか。