2014-06-20 37 views
0

所以這是我用swift編寫的hello world應用程序。也不適用於XCode。所以,這可能是一個愚蠢的錯誤。我的第一個swift hello world應用程序,嘗試訪問類時出現錯誤

我只是有一類Deck.swift

class Deck { 

    let decks : Integer = 0 

    init() { 
     decks = 1 
    } 

    init (amountOfDecks : Integer){ 
     decks = amountOfDecks 
    } 

    func getAmountOfCards() -> Integer { 
     return 0 
    } 

} 

然後我想如果我註釋掉線VAR甲板運行單元測試看起來像這樣

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") 
    } 

} 

=甲板(amountOfDecks:2)然後它建立罰款。如果包含該行,則生成失敗。

任何人都知道我在這裏做錯了嗎?

+0

因爲沒有一個參數的Constructer。 init不會被認爲是快速構造器。 – CRDave

+3

你可以發佈構建錯誤嗎? – Jack

+0

當我在虛擬Iphone上構建它時,它工作正常 – ganjan

回答

0

如果你想修改甲板PARAM你如果你把讓你的變量後,才第一次分配讀宣佈它像這樣

var decks : Int = 0 

0

雖然@jaumard是正確的說,這是VAR而不是讓你應該使用,你應該使用「內部」的類型,而不是「整數」(這是一個協議,而不是一個類型)。你得逞的,因爲兩者都是多餘的,因爲類型推斷......

var decks = 0 

是相當充足的,或

var decks: Int = 0 
如果你想詳細

參見this answer

0

無需將您的let固定爲var。 聲明時不提供默認值。

let decks : Int 

= 0已經初始化的常數,比你想改變它在初始化,這是不允許的常量。

相關問題