Быстро объявить класс в классе

Поясню свой вопрос на примере.

class Mother: NSObject {
var momVar:Int =5
var subClass : child(mylevel:5)   //  <-- ********    Error  //
init(){
    momVar=1000
    level=1
}

func print(){
    NSLog("%d",momVar);
}

func subMethod(){
    subClass =child(myVar: 5)  //  <== Doesnt Work either
    yazdir()
}
}

ниже дочернего класса:

class child:Mother{
    var someVar:Int=1
    init(myVar:Int) {
        super.init()
        someVar = myVar
    }

}

Я хочу использовать «дочерний» класс в «материнском» классе. Но я получил ошибку «не инициализирован при вызове super.init». Другой контроллер представления вызывает класс «Mother» с методом «print», например:

@IBAction func buttonTest(sender : AnyObject) {
   var mom=Mother()
   mom.yazdir() 

}

Вопрос в том, как я могу использовать «дочерний» класс в «материнском» классе? Спасибо


person Antiokhos    schedule 21.07.2014    source источник
comment
что такое techTree? Я не вижу, чтобы вы определили это... и вместо этого строка var subClass : techTree(mylevel:5) должна быть синтаксически похожа на var subClass = techTree(mylevel:5). какую ошибку вы получили в отмеченных строках кода?   -  person holex    schedule 22.07.2014
comment
В дополнение к techTree что такое yazdir()? Это вообще не компилируется для меня как есть.   -  person ansible    schedule 22.07.2014
comment
дерево технологий = ребенок. Я забыл это изменить :/ сейчас я это исправлю. Сори за это   -  person Antiokhos    schedule 22.07.2014
comment
@холекс. Спасибо, ты мой герой... ЕСЛИ ты добавишь свой ответ, я выберу тебя. Спасибо еще раз   -  person Antiokhos    schedule 22.07.2014
comment
@Антиохос, я добавил свой комментарий в качестве ответа.   -  person holex    schedule 22.07.2014


Ответы (1)


эта строка кода неверна синтаксически, как есть:

var subClass : child(mylevel:5) 

вам нужно определить тип после : (перед =, если он есть) или вы можете использовать его без явного типа, например:

var subClass = child(mylevel:5)
person holex    schedule 21.07.2014