iPadとPlaygroundsで学ぶ:「addSubview」でエラー!?

iPad+Playgrounds環境です。

UIButtonを複数表示させようと思い、for文でUIViewController.viewにaddSubviewするプログラムを書きました。

import UIKit

class ViewController : UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        for i in 1..<12 {
            self.view.addSubview(UIButton())
        }
    }
}

import PlaygroundSupport
PlaygroundPage.current.liveView = ViewController()

実行してみるとaddSubview7回目で

このプレイグラウンドの実行中に問題が起きしました。コードに誤りがないか確認してください。

という表示が出て止まってしまいます。

色々調べるも情報が見つかりませんでした。

試しにUIViewを1つ作成し、そのUIViewへUIButtonをaddSubviewしたのち、UIViewController.viewにUIViewを設定するように変えてみました。

import UIKit

class ViewController : UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        let mainView = UIView()
        for i in 1..<12 {
            mainView.addSubview(UIButton())
        }
        self.view = mainView
    }
}

import PlaygroundSupport
PlaygroundPage.current.liveView = ViewController()

今度は問題なく実行できました。 Playgroundsの制限かな?それともUIVewController.viewをそのまま使うのは良くないのかな?

いずれにしても、今後はUIViewを1つ作成してそこにaddSubviewするようにします。