iPhoneアプリで何百万も稼ぐという大きな夢を持って、Objective-Cを学ぼうとしている別のC#/.NETの男:)
わかりました、この質問は私が静的型付き言語に慣れていることに起因していると確信しているため、調整に苦労していますが、ここに私の問題があります。MyObect というクラスがあるとします。
MyObject.h
@interface MyObject : NSObject
{
}
-(void)Foo;
@end
MyObject.m
#import "MyObject.h"
@implementation MyObject
-(void)Foo
{
//do something fooey
}
@end
今、私はこれらのオブジェクトの NSMutableArray を台無しにしようとしているので、私のメインでは、これらのオブジェクトの配列を次のように埋めます:
NSMutableArray *array = [[NSMutableArray alloc] init];
for(int i = 0; i<10;i++)
{
MyObject *obj = [[MyObject alloc]init];
[array addObject:obj];
}
派手なものはありません。しかし今、私は配列の最初のものを取り出して foo メソッドを呼び出そうとしていました。だから、ここで私は混乱しています。私はこれを試しました:
MyObject *obj = [array objectAtIndex:1];
[obj Foo];
これが機能している間、 MyObject may not Respond to message という警告が表示されます。それで、私はそれをキャストさせてください:
MyObject *obj = (MyObject *)[array objectAtIndex:1];
[obj Foo];
それはまた私に警告を与えます。
私の質問は、アイテムをコレクションに保存する方法と、それらを引き出してオブジェクトのタイプを保持する方法に関する基本的な質問だと思います。繰り返しますが、私は .NET のバックグラウンドを持っているので、私の考え方に根本的な欠陥がある可能性があります。誰かが私を正しい方向に向けることができれば、大いに感謝します。
編集:私の元のコードには、実際にキャストにアスタリスクがありました(アスタリスクがないと、コンパイルエラーが発生します)。それでも警告は表示されますが...