objective-c - iOS:接受多个对象类型作为参数(是)对象?

标签 objective-c ios xcode object

我想创建一个接受 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/

相关文章:

ios - 构建后 XCode iOS 颜色不匹配

objective-c - 表格列上的复选框不会记录点击

iOS 如何以编程方式从设置应用程序启动 WIFI 页面?

ios - 在 iOS Objective-C 中像瓷砖一样显示图像

ios - 在 iOS 中将日期转换为时间戳

ios - 使用自动布局的自定义 View 的动态高度

python - 程序退出结束时 pyobjc 和 wx 崩溃

ios - Xcode Charles(HTTP 代理)不捕获本地主机流量

c - 出现 Apple Mach-O 链接器错误 C99。我如何解决它?

ios - 升级到 xcode 7.3 后出现 CorePlot 错误