Swift 2.0,闭包=函数()
Swift 2.0, closure = function()
嘿,我有一个问题,我似乎无法解决这个问题
我有闭合类型
public typealias VoidCompletionHandler = ()->Void
然后我创建一个可选变量
var favouritePropertyStateHandler:VoidCompletionHandler?
那我叫它
self.favouriteCellStateHandler?()
一切正常
self.propertyModel?.favouritePropertyStateHandler = { self.favouriteStateChanged() }
与函数类型完美搭配
func favouriteStateChanged()->Void
但为什么我不能
self.propertyModel?.favouritePropertyStateHandler = self.favouriteStateChanged()
类型匹配 - 都是?
()->Void
我得到的错误是
Cannot assign a value of type 'Void' ('aka '()') to a value of type 'VoidCopletionHanlder?'
已解决
self.propertyModel?.favouritePropertyStateHandler = self.favouriteStateChanged
然而这又产生了另一个问题,我如何才能不导致永久保留循环?如果我想让自己变弱?
您分配的是 self.favouriteStateChanged()
的结果,而不是函数本身。尝试
self.propertyModel?.favouritePropertyStateHandler = self.favouriteStateChanged
相反。
嘿,我有一个问题,我似乎无法解决这个问题
我有闭合类型
public typealias VoidCompletionHandler = ()->Void
然后我创建一个可选变量
var favouritePropertyStateHandler:VoidCompletionHandler?
那我叫它
self.favouriteCellStateHandler?()
一切正常
self.propertyModel?.favouritePropertyStateHandler = { self.favouriteStateChanged() }
与函数类型完美搭配
func favouriteStateChanged()->Void
但为什么我不能
self.propertyModel?.favouritePropertyStateHandler = self.favouriteStateChanged()
类型匹配 - 都是?
()->Void
我得到的错误是
Cannot assign a value of type 'Void' ('aka '()') to a value of type 'VoidCopletionHanlder?'
已解决
self.propertyModel?.favouritePropertyStateHandler = self.favouriteStateChanged
然而这又产生了另一个问题,我如何才能不导致永久保留循环?如果我想让自己变弱?
您分配的是 self.favouriteStateChanged()
的结果,而不是函数本身。尝试
self.propertyModel?.favouritePropertyStateHandler = self.favouriteStateChanged
相反。