在初始化我的类的属性时,当我尝试访问 self 时,我收到一条奇怪的错误消息。好像我的类(class)有一个奇怪的类型。
这是错误:
Cannot assign a value of type 'ViewController -> () ViewController' to a value of type 'ModelControllerDelegate?'
这是代码, Playground 上的简单示例:
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 - 无法在属性初始值设定项中将自己指定为委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31592636/