我在初始化类的属性时尝试访问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/