2017-09-25 44 views
0

这是我的代码设置按钮的标题从洗牌阵列 - 斯威夫特

func shuffle() { 
    let footballClubsInPoland = GKRandomSource.sharedRandom().arrayByShufflingObjects(in: self.footballClubsInPoland) 
    option1.setTitle((footballClubsInPoland[0] as AnyObject).name, for: .normal) 
    option2.setTitle((footballClubsInPoland[1] as AnyObject).name, for: .normal) 
    print(footballClubsInPoland[0]) 
    print(footballClubsInPoland[1]) 
} 

我的问题是,我可以在控制台中看到的对象,被打乱的是,但我的按钮的标题是不是在装一个模拟器。我该怎么办?

+1

什么'footballClubsInPoland'阵列的类型? –

+0

代码lokks这样的: VAR footballClubsInPoland:[footballClubs] = [] 和典型对象有看起来像这样 VAR罗切霍茹夫足球俱乐部:footballClubs = footballClubs(名称: “罗切霍茹夫足球俱乐部”,奖杯:29) –

+0

你为什么将它投射到AnyObject? –

回答

0

在做(footballClubsInPoland[0] as AnyObject时,您正在将元素转换为AnyObject,并且在调用.name时,实际上并不指的name属性。

所以,你应该宁愿做:

func shuffle() { 
    let footballClubsInPoland = GKRandomSource.sharedRandom().arrayByShufflingObjects(in: self.footballClubsInPoland) as! [footballClubs] 
    option1.setTitle(footballClubsInPoland[0].name, for: .normal) 
    option2.setTitle(footballClubsInPoland[1].name, for: .normal) 
    print(footballClubsInPoland[0]) 
    print(footballClubsInPoland[1]) 
+1

特雷弗 - 感谢您的耐心等待,现在一切正常:) –

+0

@MaciejGieparda欢迎您! :) –