作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我对在类中尝试初始化数组实例时出现的错误感到困惑。下面的评论是 xcode 6 显示的错误。
我创建了一个类。它有 NSMutableArray 的实例。我想初始化数组(因此调用 self.instancename.init())。如果我不这样做,它就会提示。如果我这样做,它会提示。
导入基金会
class testclass:NSObject {
var list_of_things:NSMutableArray;
init (){ // Designated initializer for 'testclass' cannot delegate (swith self.init);
// did you means this to be a convenience initializer?
self.list_of_things.init();
// 'init' can only refer to the initializers of 'self' or 'super'
super.init()
// Initializer cannot both delegate ('self.init') and chain to a superclass
// initializer ('super.init')
}
}
最佳答案
您需要为变量赋值,该变量中没有任何内容可以调用 init
on:
init () {
self.list_of_things = NSMutableArray()
super.init()
}
还有一些注意事项:
这将是我对你的测试类的清理版本:
class TestClass {
var listOfThings: [AnyObject]
init () {
self.listOfThings = []
super.init()
}
}
而且实际上,如果您只想初始化为一个空数组,您甚至不需要实现 init 或显式指定类型:
class TestClass {
var listOfThings = []
}
关于Swift:如何在类中初始化类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24099846/
我是一名优秀的程序员,十分优秀!