4242


こんにちは。

XCode + Swift の環境で iOS 向けの開発をしています。XCodeのバージョンは、 6.1.1 です。

クラス内に、自分自身のクラスの型の変数を宣言するとビルドは通るのですが、実行時にエラーとなります。ネットで検索すると、"Build Phases" の
"Compile Sources" に入れるとかあるのですが、すでに入っています。またカスタムビューなどを使っているわけでもありません。

エラー内容:

[code]

    Unknown class X in Interface Builder file.
    
[/code]

ソースは以下となります:

[code]

    import UIKit
    
    class MyClass {
    
        var id : String = ""
        var name : String = ""
        var parent:MyClass = MyClass() // ←ここでEXE_BAD_ACCESSになります
        var children:[MyClass] = Array()
    
        init(){
        }
    
        init(id:String, name:String){
            self.id = id
            self.name = name
        }
    
        func addChild(child:MyClass){
            child.parent = self
            self.children.append(child)
        }
    
        func isBlank() -> Bool{
            return id.isEmpty
        }
    
    }
    
[/code]

よろしくお願い致します。


CC BY-SA 3.0
2015-01-07T10:46:39.723
4240
2015-01-07T11:19:00.263
2015-01-07T10:53:03.900
4978
7168
question
swift xcode6
Swift でメンバ変数に自分自身のクラスの型を持つと実行時に Unknown class としてエラー


MyClassを作成すると同時にparent.parent.parent…を無限に作成しようとしてスタックオーバーフローしているのではないでしょうか。nil等に変更する必要があると思います。


CC BY-SA 3.0
2015-01-07T11:19:00.263
4242
2015-01-07T11:19:00.263
5750
4240
answer