消息关闭
    暂无新消息!

swift 一段代码请教

问题作者 : 仔肥2017-06-26发布
在viewcontroller.swift中 编写如下测试代码


import UIKit


class ViewController: UIViewController {




required init(coder aDecoder: NSCoder) {
print("init");
}

var t : Int;

enum buttonColor:Int
{
case red = 1
case black = 2
case green = 3
case blue = 4
}

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.
}





func color_select_ (color:Int) -> buttonColor
{
var color_ : buttonColor;
switch (color)
{
case 1: print("black");
color_ = .black
case 2: print("blue");
color_ = .green
case 3: print("green");
color_ = .blue
default:
print("red");

}
return color_;
}


var c : buttonColor = color_select_(t); //此处编译工具提示错误。

}
错误提示是:Instance member 't' cannot be used on type 'ViewController‘


麻烦各位老师给一个原因。谢谢。

5个回答

︿ 3
1.首先属性t未进行初始化,建议如下定义
var t: Int = 0
2.将c定义为计算属性
var c: buttonColor {
    return color_select_(t)
}

另外,贴出来的代码最好排版下,方便阅读。
︿ 0
var c : buttonColor = .red; //此处编译工具提示错误。

t 没有初始化
︿ 0
Instance member 't' cannot be used on type 'ViewController‘
不能直接在类中使用,放到func中调用
︿ 0
 func color_select_ (color:Int) -> buttonColor
    {
        var color_ : buttonColor = buttonColor.red;

这里初始化一下 试试 var color_ : buttonColor = buttonColor.red;