2010年2月14日日曜日

Objectiv-Cの配列というかポインタ

配列宣言
MyClass* myClass[]; // だめ
MyClass* myClass[10]; // 大丈夫




これはだめ。
MyClass* myClass;

-(void)method:(MyClass[]*)cls{
myClass = cls; // 型の不一致警告
myClass[0] = nil; // エラー
}



当然これもだめ。
MyClass* myClass;

-(void)method:(MyClass*)cls{
myClass = cls;
myClass[0] = nil; // エラー
}









これは大丈夫。
int* p;

-(void)method:(int[]*)ap{
p = ap; // 型の不一致警告
p[0] = 0;
}


これも大丈夫。
int* p;

-(void)method:(int*)ap{
p = ap;
p[0] = 0;
}





オブジェクトの配列はNSArrayなりを使わないと後で泣いちゃうかも。