我创建了一个名为Foo
:
@interface Foo:NSObject{
int myInt;
}
@property int myInt;
@end
和一个Foo
名为的子类Bar
:
@interface Bar:Foo{
NSString *myString;
}
@property (copy) NSString *myString;
@end
我正在尝试将对象Bar
作为Foo
对象存储在数组中,如下所示:
-(void)createBar{
Foo *object = [[Bar alloc]init];
// myArray is an instance of NSMutableArray
[myArray addObject:object];
}
我这样做是因为我实际上有不止一个子类Foo
(我不想全部列出)。当我从数组中抓取一个对象并将消息发送到对象以获取myString
变量时,应用程序不执行任何操作。 例子:
-(NSString *)getStringFromFooAtIndex(NSUInteger)index{
Foo *object = [myArray objectAtIndex:index];
return [object myString];
}
我是否误解了“消息”的工作原理?我假设我可以向一个对象发送消息,并且无论它是否存在,它都会调用它。我需要以其他方式这样做吗?该数组将保存所有不同类型的Foo
子类,我需要将它们存储在那里。