Ios 在swift中的UIViewController中声明新对象时出错
我已经创建了一个名为MyHelper.swift的文件 我在里面创建了一个类:Ios 在swift中的UIViewController中声明新对象时出错,ios,swift,uiviewcontroller,Ios,Swift,Uiviewcontroller,我已经创建了一个名为MyHelper.swift的文件 我在里面创建了一个类: public class MyHelper{ //..... variables here public init(list listOfViews: [UIView]){ self.listOfViews = listOfViews self.time = 1.0; } } 然后我在UIViewController中声明了一个对象,如下所示 class V
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
}
但我的错误是:
**
类“ViewController”没有初始值设定项
**
我尝试了xcode中建议的默认修复:
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
它导致了另一个错误
然后我在互联网上尝试了以下代码:
required init(coder aDecoder: NSCoder!)
{
super.init(coder: aDecoder)
}
它说:
属性self.myHelper未在super.init调用时初始化
我究竟如何在UIViewController!中使用MyHelper类的对象您正在初始化ViewDidDisplay中的MyHelper。它需要在init中初始化(在super.init()之前),或者您需要将其声明为可选并设置为nil
var myHelper: MyHelper? = nil
您正在初始化ViewDidDisplay中的MyHelper。它需要在init中初始化(在super.init()之前),或者您需要将其声明为可选并设置为nil
var myHelper: MyHelper? = nil
您可以将
myHelper
设置为可选:
var myHelper:myHelper?
使用时,请先使用以下工具将其展开:
if let myHelper = myHelper {
myHelper.yourFunction()
} else {
// self.myHelper == nil
}
或者,您可以使用展开代码>:
myHelper!。yourFunction()
但是如果myHelper为零,它将崩溃。您可以将myHelper
设置为可选:
var myHelper:myHelper?
使用时,请先使用以下工具将其展开:
if let myHelper = myHelper {
myHelper.yourFunction()
} else {
// self.myHelper == nil
}
或者,您可以使用展开代码>:
myHelper!。yourFunction()
但如果myHelper为零,它将崩溃。这是Swift在工作时的编译时检查
您需要在init
方法中设置MyHelper
,或者将其标记为可选(请注意var
声明末尾的问号):
这是Swift的编译时检查
您需要在init
方法中设置MyHelper
,或者将其标记为可选(请注意var
声明末尾的问号):
现在,当我尝试调用一个函数时,它会给我另一个错误:“MyHelper?”?没有名为startMyHelperTimer“”的成员,该成员是MyHelper中的函数。是否引用了MyHelper
的实例?i、 e.确保您正在使用self.myHelper。startMyHelperTimer
我添加了这一行,它可以立即查找:var myHelper:myHelper!而不是我放了!而且很有效!!!!!!我试着引用这个实例,现在成功了。谢谢@GavinBunneynow当我尝试调用一个函数时,它给了我另一个错误:“MyHelper?”?没有名为startMyHelperTimer“”的成员,该成员是MyHelper中的函数。是否引用了MyHelper
的实例?i、 e.确保您正在使用self.myHelper。startMyHelperTimer
我添加了这一行,它可以立即查找:var myHelper:myHelper!而不是我放了!而且很有效!!!!!!我试着引用这个实例,现在成功了。谢谢@GavinBunneynow当我尝试调用一个函数时,它给了我另一个错误:“MyHelper?”?没有名为startMyHelperTimer“”的成员,该成员是MyHelpernow中的函数。当我尝试调用函数时,它会给我另一个错误:“MyHelper?”?没有名为startMyHelperTimer“”的成员,该成员是MyHelpernow中的函数。当我尝试调用函数时,它会给我另一个错误:“MyHelper?”?没有名为startMyHelperTimer“”的成员,该成员是MyHelpernow中的函数。当我尝试调用函数时,它会给我另一个错误:“MyHelper?”?没有名为startMyHelperTimer“”的成员,该成员是MyHelper中的函数