如何在Xcode视图控制器上使用开关?

时间:2016-11-23 05:31:19

标签: swift xcode

我读过一本关于Swift逻辑的书,但我不知道如何在xCode 8中使用界面制作应用程序。我在制作一个非常基本的应用程序,你有货币(当你点击一个按钮(goldPan)时,它检查看看goldPan的升级是什么,并且根据升级,用户获得了这么多钱币,基本上就像游戏cookie点击器一样。而不是写大量的"如果"声明我决定建立一个"开关"检查goldPan的升级程度。此外,goldPan有自己的类。我更多的是问问"是切换方式来检查升级?如果是这样,我如何用我的代码实现它。就像我说的,我不确定它是否是最有效的方式,但当我使用它时,我得到的错误

  

使用实例成员' checkUpgradeNumber'在类型' ViewController.goldPan&#39 ;;你的意思是使用' ViewController.goldPan'代替?

  

实例会员'制作'不能在类型' ViewController.goldPan'

上使用

请帮助我,我不确定开关是否是最好的方式或其他。对不起,这个非常棒的问题。我的代码如下:

import UIKit

class ViewController: UIViewController {

@IBOutlet var topLabel: UILabel!

var coins = 0;

class goldPan {

    var upgradeNumber = 0

    var production = 1

    func checkUpgradeNumber() {


    switch upgradeNumber {
    case 0:
        production = 1;
    case 1:
        production = 2;
    case 2:
        production = 3;
    default:
        production = 1;
    }

    }


}

@IBAction func goldPanButton(_ sender: Any) {
goldPan.checkUpgradeNumber();
coins = coins + goldPan.production
}


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

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


}

3 个答案:

答案 0 :(得分:0)

class goldPan更改为func goldPan

我不认为你可以在课堂上上课。这可能无法解决整个问题,但它可能会解决部分问题。我对此并不完全确定,但我只是注意到你正在使用一个类而不是一个函数。

答案 1 :(得分:0)

首先请考虑类名以大写字母(GoldPan)开头的命名约定。

您正在调用方法并访问该类上的属性,该属性是该代码无法实现的。

使方法和属性静态

...
static var upgradeNumber = 0
static  var production = 1

class func checkUpgradeNumber() { ...

或创建类

实例
let goldPan = Goldpan()
goldPan.checkUpgradeNumber()
coins = coins + goldPan.production

但基本上我认为你不需要为此使用单独的类。删除内部class块并使用ViewController类中的方法和属性。

答案 2 :(得分:0)

您可以替换:

production = upgradeNumber + 1

使用:

$(function() {
  $('#poem-input').keypress(function(e) {
    var keycode = event.keyCode || event.which;
    if (keycode == '13') {
      $(this).replaceWith('<span>' + this.value + '</span>')
      $('#second').show()
    }
  });
});