XCode思い出し中

  • Cmd+Bでビルド、Cmd+Sht+Bでビルド結果、Cmd+Enterでビルドして実行
  • Escで補完, Ctrl+/で次のプレースホルダー, 右矢印で表示中の補完候補で確定
  • Cmd+Opt+Upでfoo.mとfoo.hの切り替え
  • NSLog(@"hoge"); NSLog(@"%f, %f", x, y); NSLog(@"%@", nsstr); エディタの上の黒いアイコンでログを見る
  • 例外投げて死んだらエディタの上の細い隙間をクリックするとスタックトレースになっている。
  • -(id)initの中で[super init];しわすれてはまる
  • -(id)initでreturn self;しわすれる


わりと最小限な感じのコード片:

// Ball.h
@interface Ball : CCSprite {
	float vx;
}
@property float vx;
- (void)update:(ccTime)dt;
@end
// Ball.m
#import "Ball.h"

@implementation Ball
@synthesize vx;
- (id)init{
    self = [super init];
    if (self != nil) {
        // do something
    }
    return self;	
}

- (void)update:(ccTime)dt
{
    // do something
}
@end

たとえばNSString*なんかをプロパティにするときには、セッターが「参照カウントをインクリメント」(retain)しないといけない。

@property(retain) CCSprite* sprite;

@selectorを使ったサンプル

CCMenuItem *mnu_next = [CCMenuItemFont itemFromString: @"next>>" target: self selector: @selector(next:)];
//(略)
-(void)next: (id)sender{
	NSLog(@"next!");
}