swift - IBOutlet 和 IBAction 的名称冲突?

标签 swift xcode6 xcode-storyboard

我有以下从 UICollectionViewCell 类到 Storyboard单元格中按钮的引用。单击该按钮不会触发“setFavorite”。

class StationCollectionViewCell: UICollectionViewCell {

    @IBOutlet weak var favorite: UIButton!

    @IBAction func setFavorite(sender: AnyObject) {
       println("Button clicked")
    }
}

但是当我将操作函数或导出变量的名称更改为其他名称(例如“setAsFavorite”或“favoriteButton”)时,它就可以工作了。

Swift 的 xCode 是否有一些“魔法”阻止我同时拥有名为“favorite”的 socket 和名为“setFavorite”的操作

最佳答案

魔法属于 NSObject。名为 favourite 的属性有两个访问器方法:favourite(返回属性值)和 setFavourite:(设置值)。通过上面的代码,您打破了这个假设,这就是更改方法名称有效的原因。

关于swift - IBOutlet 和 IBAction 的名称冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27733851/

相关文章:

swift - 我迷路了...试图将用户更改的 UITextField 传递给另一个 ViewController (Swift)(Xcode6)

ios - 如何在单独的 Storyboard Xcode 6 中为 iPhone 和 iPad 开发

ios - 在 Storyboard 中直接向 UITextView 添加属性文本

ios - Xcode 6 中的文档方法和枚举

ios - 当应用程序在没有 Xcode 的情况下运行时,IB 中的 GLKView 会导致崩溃

Swift Storyboard : split view controller not showing properly on MacOS

swift - 如何在选择一行后隐藏tableView

ios - layoutIfNeeded 内的代码被调用两次

ios - RxSwift Realm 在 RunLoop 中观察 Array

ios - 如何解析 swift 3 的 api?