我有这个drawRandomCard函数的问题.
它的工作方式就像它应该存在一段时间,但最终它会崩溃应用程序.
这是代码:
import Foundation
var cardDeck = Array<PlayingCard>()
class Deck {
func addCard(card : PlayingCard , atTop : Bool = false){
if atTop {
cardDeck.insert(card, atIndex: 0);
}else{
cardDeck += card
}
}
func drawRandomCard() -> PlayingCard{
var card = PlayingCard()
var randomNumber : Int = Int(arc4random()) % (cardDeck.count - 1)
card = cardDeck[randomNumber]
cardDeck.removeAtIndex(randomNumber)
return card
}
}
Run Code Online (Sandbox Code Playgroud) 突然,我在Apple的文档中学到的for循环结构停止了工作,它显示了一个错误:预期的声明.谁能告诉我新的语法是什么?
let CirclePoints = 84
var circlePoint = 0
for circlePoint in 0..<CirclePoints {
}
Run Code Online (Sandbox Code Playgroud)
这种方式也行不通:
for var circlePoint = 0; circlePoint < CirclePoints; circlePoint++ {
}
Run Code Online (Sandbox Code Playgroud) 我收到此错误:无法将表达式的类型'()转换为从Card输入$'T5'PlayardCard继承,我知道drawRandomCard返回一个PlayingCard.我怎样才能进行这种转换?
var deck = PlayingCardDeck()
var card = PlayingCard()
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func cardTouchBtn(sender : UIButton) {
if !sender.currentTitle{sender.setTitle("", forState: UIControlState.Normal)}
if sender.currentTitle.isEmpty{
card = PlayingCard(deck.drawRandomCard())
sender.setBackgroundImage(UIImage(named : "cardFront"), forState: UIControlState.Normal)
sender.setTitle(card.contents, forState: UIControlState.Normal)
}else{
sender.setBackgroundImage(UIImage(named : "cardBack"), forState: UIControlState.Normal)
sender.setTitle("", forState: UIControlState.Normal)
}
}
}
Run Code Online (Sandbox Code Playgroud)
关于git的完整代码:https://github.com/victoryudi/CS193p-Swift/tree/master/FlipCard