我有一个对象数组,每个对象都在我的控制之下,类。
每个班级都有一个属性id
所以用某种铸造方法调用object.id。
如何在不投射
的情况下执行此类代码for(id obj in objects){
NSLog(@"%ld", obj.id);
}
答案 0 :(得分:2)
做这样的事情:
for (id obj in objects) {
if ([obj respondsToSelector:@selector(id)])
[obj performSelector:@selector(id)];
}
请注意,如果您没有检查对象是否响应选择器,那么您可能会因为无法识别的选择器异常而导致应用崩溃。
答案 1 :(得分:0)
您可以使用KVC方法valueForKey:@"id"
否则,如果您正在寻找选择器,我认为您可以通过respondsToSelector:@selector(id)
虽然我想建议两件事:
不要将不同类型的对象放在同一个数组中,这只是为了让您感到困惑。
如果可以的话,可以使用它们,它会更清晰,更舒适,因为它可以让你使用你的属性。只要确保你正在施放正确的物品!