取り急ぎメモ代わりに。
以下のようにdelegateを実装して実行しようとするとエラーが発生し足踏みしていた
protocol CalendarViewDelegate {
func tapDay(dayText: NSString)
}
// とあるメソッドの中身の以下の行でエラー
self.delegate.tapDay("aaaaa")
エラーメッセージ
unexpectedly found nil while unwrapping an optional value
解決策はシンプルで
self.delegate?.tapDay("aaaaa")
とすれば良い。引数がない場合は?が要らないし、こういう場合はXCodeがコンパイル前にワーニングなりエラーにしてくれたりするから全然分からなかった。