我想创建一个接受 UIButton、UIImageView 或任何其他对象作为参数的方法。我使用 id 类型尝试了以下操作,
-(void)shiftObject:(id)object {
object.frame = CGRectMake(0, 0, 20, 20);
}
但是 xcode 静态错误检查器会立即将其标记出来。有没有办法做到这一点?我认为我使用 id 类型走在正确的轨道上,但我不确定从这里去哪里。
最佳答案
您不能真正将其与“任何其他对象”一起使用,而只能将其与“具有框架属性的任何其他对象”一起使用。
所以,尝试转换到带有框架的东西,比如 UIView。您提到的所有对象都继承自 UIView,因此具有 frame 属性。
-(void)shiftObject:(id)object {
((UIView*)object).frame = CGRectMake(0, 0, 20, 20);
}
关于objective-c - iOS:接受多个对象类型作为参数(是)对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7398781/