【问题标题】:Objective-C to Swift Equivilant [closed]Objective-C 到 Swift Equivilant [关闭]
【发布时间】:2014-07-09 06:37:45
【问题描述】:

我正在尝试弄清楚如何快速编写此块方法。我似乎无法正确理解闭包语法:

[self.colorPickerView setDidChangeColorBlock:^(UIColor *color){
        self.selectedColor.backgroundColor = self.colorPickerView.color;
}];

提前致谢!

我尝试了什么:

self.colorPickerView.didChangeColorBlock({
    (color: UIColor) in self.selectedColorView.backgroundColor = self.colorPickerView.color
})

最终解决方案:

self.colorPickerView.didChangeColorBlock = {
            (color: UIColor!) in
            self.selectedColorView.backgroundColor = color
        }

【问题讨论】:

  • 我尝试了 serejahh 的建议,以及以上。我得到的错误是: (UIColor) -> (UIColor) -> $T3 is not convertible to 'UIColor'
  • 顺便说一句,您应该使用回调块中提供的颜色而不是 self.colorPickerView.color 和弱化/强化自我,只要您不想要一个保留循环(块保留自我,自我保留块)。

标签: objective-c xcode swift ios8


【解决方案1】:

你可能需要使用

self.colorPickerView.didChangeColorBlock = { ...

而不是

self.colorPickerView.didChangeColorBlock({ ...

因为didChangeColorBlock 是一个属性,而不是一个方法。

【讨论】:

  • 感谢 jtbandes 成功了! :]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多