LoginSignup
19
19

More than 5 years have passed since last update.

iPhoneアプリ開発@XCode4.5 でなん度もなん度も調べてしまう便利な小技を思いつき次第まとめていく

Last updated at Posted at 2012-11-07

NSArray, NSDictionary, NSNumber を簡単に初期化

// NSArray を 簡単に初期化できます。(最後のnilは不要)
NSArray* values = @[@"value1",@"value2",@"value3"];

// NSDictionary を 簡単に初期化できます。
NSDictionary* dic = @{@"key1":@"value1", @"key2":@"value2"};

NSNumber  簡単に初期化できます。
//NSNumber* val1 = @100; // [NSNumber numberWithInt:100];

// こんなこともできます。
NSDictionary* person = @{@"name":@"tom", @"age":@100, @"friends":[@"alan",@"george"]}

NSArrayのなかから特定の値のものを取得

-[NSPredicate] をつかいます

iPad/iPhone/iPhone5かどうかの判断

下記のコードを、Project_Prefix.pchにでもおいておきましょう

// iPadかどうかの判断
UIKIT_STATIC_INLINE IsPad() {
#ifdef __IPHONE_3_2
        return UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad;
#else
        return NO;
#endif
}

// iPhone5の画面サイズかどうか判断
UIKIT_STATIC_INLINE BOOL Is568h() {
    return [UIScreen mainScreen].bounds.size.height == 568.0f;
}

UIView の背景を画像にする

画像をパターンとして描画するので、画像のサイズが view のサイズより小さい場合は、
画像が上下左右つながるようにしておきましょう

view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"hoge"]];

n秒後に処理を実行する

// 2秒後に、self の hoge を実行する。
[self performSelector:@selector(hoge) withObject:nil afterDelay:2.0];
// 上記の処理をキャンセルするには
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(hoge) object:nil];

// ユーザーが画面を2秒間タッチしなかったら、何かの処理を行う実装
// HogeView.m
-(void)hoge
{
// Tabbarを表示するとか、ボタンを表示するとか...
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
  [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(show) object:nil];
  [self performSelector:@selector(show) withObject:nil afterDelay:2.0];
}   
19
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
19