错误迅速
宣布在一个UIViewController一个新的对象时,我已经创建了文件名为MyHelper.swift 和我创建它里面类:错误迅速
public class MyHelper{
//..... variables here
public init(list listOfViews: [UIView]){
self.listOfViews = listOfViews
self.time = 1.0;
}
}
然后我宣布一个对象的UIViewController这样
class ViewController: UIViewController {
var myHelper: MyHelper;
override func viewDidAppear(animated: Bool) {
myHelper = MyHelper(listOfViewsToAnimatin: listOfViews)
}
// ..... rest of the code
}
,但我得到的错误,说:
**
Class "ViewController" has no initializers.
**
我试图在Xcode建议的默认修正:
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
这导致另一个错误。
那我就从网上这段代码:
required init(coder aDecoder: NSCoder!)
{
super.init(coder: aDecoder)
}
它说:
Property self.myHelper not initialized at super.init call
如何在地球上,我可以使用MyHelper类的对象内部的UIViewController!?
这是Swift的编译时检查工作。
你要么需要安装在init
方法MyHelper
,或将其标记为可选(在var
声明的结尾注意问号):
class ViewController: UIViewController {
var myHelper: MyHelper?
required init(coder aDecoder: NSCoder!)
{
super.init(coder: aDecoder)
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
myHelper = MyHelper(listOfViewsToAnimatin: listOfViews)
}
// ..... rest of the code
}
现在
您正在初始化viewDidAppear中的MyHelper。它需要在init中进行初始化(在super.init()之前),或者需要将其声明为可选,并将其设置为nil。
var myHelper: MyHelper? = nil
当我尝试调用函数它给了我另一个错误:“”MyHelper?没有名为startMyHelperTimer的成员“”,这是MyHelper内部函数 – MBH 2015-03-03 00:53:43
您可以myHelper
可选:
var myHelper:MyHelper?
当你使用它,与第一解开它:
if let myHelper = myHelper {
myHelper.yourFunction()
} else {
// self.myHelper == nil
}
或者你可以用!
解开:
myHelper!.yourFunction()
但是如果myHelper为零,它会崩溃。
现在当我尝试调用一个函数时,它给了我另一个错误:“”MyHelper?没有名为startMyHelperTimer的成员“”,这是MyHelper – MBH 2015-03-03 00:57:21
中的函数现在当我尝试调用一个函数时,它给了我另一个错误:“”MyHelper?没有名为startMyHelperTimer的成员“”,这是MyHelper中的函数 – MBH 2015-03-03 00:51:44
您是否引用MyHelper的实例?即确保你使用'self.myHelper。 startMyHelperTimer' – 2015-03-03 01:02:01
我添加了这一行,它现在可以找到:var myHelper:MyHelper!代替 ?我放 !它的作品!!!!!! – MBH 2015-03-03 01:23:33