ios - 如果 Swift 按值而不是引用传递,为什么我可以通过将它传递给函数来在 Swift 中操作 UIView 的属性?

标签 ios swift uiview reference pass-by-reference

<分区>

也许这是一个愚蠢的问题,我完全误解了 Swift 中传递变量的方式,但我的印象是 Swift 默认情况下是通过复制传递的,你可以使用 inout表示通过引用传递的关键字。

那么,如果我有一个具有 UIView 参数的函数,我可以更改 UIViewbackgroundColor在该函数内,它反射(reflect)在函数外。如果函数在传递时创建本地副本,这对传递的变量有何影响?

为什么不需要 inout?

最佳答案

因为您传递的 UIView 是一个类实例:它是一个开始的指针。所以,本质上,您按值传递该指针,因为您没有将引用传递给该指针(如 &pointer >C).

参见 Is Swift Pass By Value or Pass By Reference以获得详尽的答案。

关于ios - 如果 Swift 按值而不是引用传递,为什么我可以通过将它传递给函数来在 Swift 中操作 UIView 的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32170629/

相关文章:

iphone - UITableViewCell 中的特殊自定义复选标记

ios - 将委托(delegate)协议(protocol)一致性添加到纯 swift 类

ios - 前置摄像头填充圆形 UIView

ios - 在 Storyboard 中使用自定义 UIView 捕获 View 什么都不返回?

ios - 在没有服务器的设备上 react native 运行应用程序

iphone - Xcode 4 在目标设备上显示 "finished running <my app>"——没有任何反应

swift - 使用过多的 IF 语句是否有问题? swift

ios - Spritekit游戏在iPad模拟器上出现严重滞后

swift - 使用 dateFormatter 和 Swift 将字符串日期转换为日期不起作用

ios - 如何在 UIView 动画期间为 UIView 图层的子图层设置动画?