ios – 调用中缺少参数#1的参数

我有一个懒惰的参数,我试图调用辅助函数
class ColumnNode: SCNNode {

    lazy var upperColumnNode: SCNNode = {
        return buildColumPart()
    }()

    func buildColumPart() -> SCNNode {
        var node = SCNNode()
        ...
        return node
    }
}

不幸的是在线返回buildColumPart()我得到:

Missing argument for parameter #1 in call

这究竟是什么意思,我该如何解决

解决方法

您需要使用self来访问延迟属性中的实例方法
class ColumnNode: SCNNode {

    lazy var upperColumnNode: SCNNode = {
        return self.buildColumPart()
    }()

    func buildColumPart() -> SCNNode {
        var node = SCNNode()
        ...
        return node
    }
}

有趣的是,它抱怨参数#1的原因是实例方法实际上是类方法,它将实例作为参数并返回一个捕获实例的闭包 – 而不是self.buildColumPart(),你可以改为调用buildColumPart(self )().

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...