警告:无法加载任何Objective-C类信息

时间:2015-11-20 23:30:36

标签: swift

我正在创建一个刽子手应用程序。所以我在一个名为我的子类的单词的变量上得到了这个错误:正常。错误:

  

警告:无法加载任何Objective-C类信息。这将显着降低可用类型信息的质量。

不幸的是,更多人有这个问题似乎无法回答。我已经尝试初始化类中的变量单词,但它不起作用。希望有人可以就如何解决这个问题向我提供一些反馈。这是我的代码:

class ViewController: UIViewController {

    // ********  LOCAL VARIABLES *********
    var evulMode = true
    let someMode = Mode()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    @IBAction func input(sender: UITextField) {
        let input = sender.text!

        someMode.hangMan(letter: input)
    }

    // Framework for the hangman game. Calls two modes: normal or evul.
    class Mode {

        var evulMode = false
        var normal = Normal()
        var inProgress = false

        func hangMan(letter: String) {
            if evulMode == true {
                print(letter)
            } else {
                normal.check(letter: letter)
            }
        }
    }

    // Evul mode

    // Normale mode
    class Normal: Mode {
        var words: [String] = []

        override init() {
            words = ["peach", "apple", "banana"]
        }

        func computeWord() -> String.CharacterView {
            let randomIndex = Int(arc4random_uniform(UInt32(words.count)))
            let word: String = words[randomIndex]
            let arrayWord = word.characters
            return(arrayWord)
        }

        func check(letter: String) {
            if (inProgress == false) {
                print("inProgess = false")
                let word = Array(computeWord())
                print(word)
                inProgress = true
            }
        }
        //for (index, element) in word.enumerate() {
        //print("Item \(index): \(element)")
        //}
    }

    // Houdt de staat van de game bij.
    class UserState {
        let word = []
    }
}

1 个答案:

答案 0 :(得分:0)

我只看到一件事是错的。 UserState 类作为无效的属性。 word 应具有显式类型。你不能拥有一个空的集合文字。它总是需要一个明确的类型。

所以,给他一个类型:

class UserState {
    let word: [String] = [] //or let word = [String]()
}

即便如此,当课程没有初始化时,我也不明白为什么你需要一个不可变的属性。