我的第一个swift hello world应用程序,在尝试访问类时构建错误

时间:2014-06-20 12:26:07

标签: iphone swift ios8 xcode6

所以这是我用swift的hello world应用程序。也不习惯XCode。所以,这里可能是一个愚蠢的错误。

我只有一个类Deck.swift

class Deck {

    let decks : Integer = 0

    init () {
       decks = 1
    }

    init (amountOfDecks : Integer){
       decks = amountOfDecks
    }

    func getAmountOfCards() -> Integer {
        return 0
    }

}

然后我尝试运行看起来像这样的单元测试

import XCTest
import helloWorldv2

class helloWorldv2Tests: XCTestCase {

    override func setUp() {
        super.setUp()

    }

    override func tearDown() {
        super.tearDown()
    }

    func testDeckConstructor() {
        var deck = Deck(amountOfDecks: 2)
        XCTAssert(true, "Pass")
    }

    func testExample() {
        // This is an example of a functional test case.
        XCTAssert(true, "Pass")
    }

}

如果我注释掉 var deck = Deck(amountOfDecks:2)这一行,那么它构建正常。如果包含该行,则构建失败。

任何人都知道我在这里做错了什么?

3 个答案:

答案 0 :(得分:0)

如果你想修改deck param,你必须像这样声明它

var decks : Int = 0

如果你把你的变量只在第一次分配后才被读取。

答案 1 :(得分:0)

虽然@jaumard说你应该使用 var 而不是是正确的,但你应该使用“Int”作为类型,而不是“整数” “(这是一种协议,而不是一种类型)。你侥幸成功,因为类型推断都是多余的......

var decks = 0

已足够,或

var decks: Int = 0

如果你想要冗长。

this answer

答案 2 :(得分:0)

无需将let常量变为var。 声明它时,根本不提供默认值。

let decks : Int

你的= 0已初始化你的常量,而不是你试图在init中更改它,这是常量不允许的。

相关问题