我在初始化类的属性时尝试访问self时,收到一条奇怪的错误消息。看来我班上的学生很奇怪。

这是错误:

Cannot assign a value of type 'ViewController -> () ViewController' to a value of type 'ModelControllerDelegate?'

这是代码,是操场上的简单示例:
import Foundation
import UIKit

protocol ModelControllerDelegate
    {
    func modelControllerDidFinishTask()
    }

class ModelController
    {
    var delegate : ModelControllerDelegate?
    }

class ViewController : UIViewController, ModelControllerDelegate
    {
    var modelController : ModelController =
        {
        let controller = ModelController()
        controller.delegate = self
        return controller
        }()

    func modelControllerDidFinishTask()
        {

        }
    }

最佳答案

您尝试在未完全初始化时使用self。如果您使用延迟初始化,则可能会起作用:

lazy var modelController : ModelController = { ...

关于ios - 无法在属性初始化程序中将self分配为委托(delegate),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31592636/

10-12 00:15
查看更多