当我创建一个setter时,例如:

var masterFrame: CGRect {
    set {
        _imageView.frame = newValue
        _scrollView.frame = newValue
    }
}

这迫使我go 做一个我不想做的事情.

有没有办法在Swift中创建一个没有getter的二传手?

推荐答案

如果我真的需要,我会用这个.

Swift compiler支持getter上的一些属性,因此可以使用@available(*, unavailable):

public subscript(index: Int) -> T {
    @available(*, unavailable)
    get {
        fatalError("You cannot read from this object.")
    }
    set(v) {
    }
}

这将清楚地向代码用户传达您的意图.

Swift相关问答推荐

如何在一个角色隔离类上编写自定义==实现?

变量捕获:变量在函数闭包中的行为

了解SWIFT中的任务行为

当TextField变为空时,不会触发onChange

字典下标或运算符,如果密钥不存在,则添加指定的默认&值是SWIFT?

SwiftUI:按钮的圆形边缘的边框尺寸加倍

Swift-SceneKit-无法从art.scnassets加载.scn文件

UIButton 配置不更新按钮标题

带有屏幕参数的 NSWindow 初始化程序在初始化时导致致命错误

如何在 RxSwift 中获取 controlEvent 类型?

UnkeyedEncodingContainer 和 KeyedEncodingContainerProtocol 中的 superEncoder 是什么?

如何使被拖动的对象成为前景(foreground)对象

在 SwiftUI 中,如何在 UIView 内或作为 UIView 使用 UIHostingController?

仅在 Swift 中创建 Setter

快速的 AES 加密

自定义 Google 登录按钮 - iOS

使用 ARAnchor 插入 node 和直接插入 node 有什么区别?

如何快速格式化用户显示(社交网络等)的时间间隔?

swift中的匿名类

枚举大小写的原始值必须是文字