首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用故事板连接Xcode 6中的插座集合

无法使用故事板连接Xcode 6中的插座集合
EN

Stack Overflow用户
提问于 2014-06-05 17:15:22
回答 4查看 12.4K关注 0票数 7

我在Xcode 6中创建一个出口集合有困难。Xcode 6中的出口集合现在作为常规IBOutlets运行,您可以使用相同的@IBOutlet属性声明一个出口集合,同时确保为该类型指定一个数组。在我看来,控制器的快速文件就是这样做的。

代码语言:javascript
运行
复制
@IBOutlet var cardButtons: UIButton[]

在Xcode 5中,当一个控件使用辅助编辑器从情节提要中的一个元素拖动到相应的视图控制器时,就会显示一个选项来创建一个出口或一个出口集合。在Xcode 6中,这似乎不再可能了,我猜这是因为出口和插座集合现在共享相同的@IBOutlet属性。我应该如何创建一个出口集合,它将包含10个按钮,而不能控制从故事板视图中拖动每个按钮并将其连接到我的

代码语言:javascript
运行
复制
@IBOutlet var cardButtons: UIButton[] 

属性在我的视图控制器快速文件?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-06-05 17:32:12

您已经做对了,您只需要更正式地定义数组:

代码语言:javascript
运行
复制
@IBOutlet var cardButtons: Array<UIButton>

现在,您将能够连接从IB按钮。

上面的方法应该有效,但在Xcode 6 beta 3中仍然不起作用。解决办法是使用NSArray,直到Xcode和Swift能够正确地处理这个问题:

代码语言:javascript
运行
复制
class ViewController: UIViewController {
    @IBOutlet strong var labels: NSArray!

    override func viewDidLoad() {
        super.viewDidLoad()

        for label in self.labels as [UILabel] {
            label.textColor = UIColor.redColor()
        }
    }
}
票数 11
EN

Stack Overflow用户

发布于 2014-06-23 14:01:07

这是Xcode 6测试版已知的问题:"Interface不支持在Swift类中声明出口集合。“(15607242)

Nate的答案对于附加插座是正确的,但对于插座集合则是正确的。希望在下一个Xcode 6测试版中,这个问题将得到解决。

票数 2
EN

Stack Overflow用户

发布于 2014-07-10 21:27:26

在Xcode 6的seed 3中,以下语法工作:

代码语言:javascript
运行
复制
@IBOutlet strong var cardButtons: NSArray?

请注意以下事项:

  • 您必须使用strong,因为@IBOutlet在默认情况下是弱的,而且由于数组不在接口中,所以在您有机会使用它之前,它将消失。
  • 您必须使用NSArray,因为不能将数组标记为强。

当然,知道包含的类型现在取决于您。

还请注意,这不是docs或Xcode本身在控制拖动以形成出口集合时所宣传的语法。我无法控制这一点;使用这种语法会导致seg错误,因此显然还需要其他一些东西,至少目前是这样。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24066270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档