对于闭包,我通常会附加[weak self]
到我的捕获列表中,然后对自身进行空检查:
func myInstanceMethod()
{
let myClosure =
{
[weak self] (result : Bool) in
if let this = self
{
this.anotherInstanceMethod()
}
}
functionExpectingClosure(myClosure)
}
self
如果我使用嵌套函数代替闭包,我如何执行空检查(或者检查是否必要......或者使用这样的嵌套函数是否是一种好习惯),即
func myInstanceMethod()
{
func nestedFunction(result : Bool)
{
anotherInstanceMethod()
}
functionExpectingClosure(nestedFunction)
}