IBOutlet 和 IBAction 的名称冲突?
Posted
技术标签:
【中文标题】IBOutlet 和 IBAction 的名称冲突?【英文标题】:Conflicting names of IBOutlet and IBAction? 【发布时间】:2015-01-01 19:19:20 【问题描述】:我有以下从 UICollectionViewCell 类到情节提要单元格中的按钮的引用。点击按钮不会触发“setFavorite”。
class StationCollectionViewCell: UICollectionViewCell
@IBOutlet weak var favorite: UIButton!
@IBAction func setFavorite(sender: AnyObject)
println("Button clicked")
但是,当我将动作函数或插座变量的名称更改为其他名称(例如“setAsFavorite”或“favoriteButton”)时,它会起作用。
Swift 的 xCode 是否有一些“魔法”阻止我同时拥有一个名为“favorite”的出口和一个名为“setFavorite”的动作
【问题讨论】:
【参考方案1】:魔法属于 NSObject。一个名为favourite
的属性有两个访问器方法:favourite
,它返回属性值,setFavourite:
,它设置值。使用上面的代码,您打破了这个假设,这就是更改方法名称有效的原因。
【讨论】:
以上是关于IBOutlet 和 IBAction 的名称冲突?的主要内容,如果未能解决你的问题,请参考以下文章
快速,为啥我必须使用 IBaction 或 IBOutlet 在代码和 UI 之间进行通信?
在代码中将 UIButton 连接到 IBOutlet 和 IBAction
如何在不使用助手编辑器的情况下将 IBOutlet 和 IBAction 连接到视图控制器