我在Xcode 6中创建一个出口集合有困难。Xcode 6中的出口集合现在作为常规IBOutlets运行,您可以使用相同的@IBOutlet属性声明一个出口集合,同时确保为该类型指定一个数组。在我看来,控制器的快速文件就是这样做的。
@IBOutlet var cardButtons: UIButton[]在Xcode 5中,当一个控件使用辅助编辑器从情节提要中的一个元素拖动到相应的视图控制器时,就会显示一个选项来创建一个出口或一个出口集合。在Xcode 6中,这似乎不再可能了,我猜这是因为出口和插座集合现在共享相同的@IBOutlet属性。我应该如何创建一个出口集合,它将包含10个按钮,而不能控制从故事板视图中拖动每个按钮并将其连接到我的
@IBOutlet var cardButtons: UIButton[] 属性在我的视图控制器快速文件?
发布于 2014-06-05 17:32:12
您已经做对了,您只需要更正式地定义数组:
@IBOutlet var cardButtons: Array<UIButton>现在,您将能够连接从IB按钮。
上面的方法应该有效,但在Xcode 6 beta 3中仍然不起作用。解决办法是使用NSArray,直到Xcode和Swift能够正确地处理这个问题:
class ViewController: UIViewController {
@IBOutlet strong var labels: NSArray!
override func viewDidLoad() {
super.viewDidLoad()
for label in self.labels as [UILabel] {
label.textColor = UIColor.redColor()
}
}
}发布于 2014-06-23 14:01:07
这是Xcode 6测试版已知的问题:"Interface不支持在Swift类中声明出口集合。“(15607242)
Nate的答案对于附加插座是正确的,但对于插座集合则是正确的。希望在下一个Xcode 6测试版中,这个问题将得到解决。
发布于 2014-07-10 21:27:26
在Xcode 6的seed 3中,以下语法工作:
@IBOutlet strong var cardButtons: NSArray?请注意以下事项:
strong,因为@IBOutlet在默认情况下是弱的,而且由于数组不在接口中,所以在您有机会使用它之前,它将消失。当然,知道包含的类型现在取决于您。
还请注意,这不是docs或Xcode本身在控制拖动以形成出口集合时所宣传的语法。我无法控制这一点;使用这种语法会导致seg错误,因此显然还需要其他一些东西,至少目前是这样。
https://stackoverflow.com/questions/24066270
复制相似问题