このページは「Nilかもしれないプロパティ」のサンプルコードです。
// // ViewController.swift // MyApp // // Created by Shimizu Miki on 2014/07/31. // Copyright (c) 2014年 Shimizu Miki. All rights reserved. // import UIKit class Tour{ let name:String var bass:Musician? var drums:Musician? var message = "" init(name:String){ self.name = name message = "\(name)です。\n" } func addBass(bassist:Musician){ bass = bassist bass!.tour = self message += "ベースに\(bass!.name)さんが参加しました。\n" } func addDrums(drummer:Musician){ drums = drummer drums!.tour = self message += "ドラマ−に\(drums!.name)さんが参加しました。\n" } func delBass(){ bass = nil message += "ベーシストが脱退しました。\n" } func delDrums(){ drums = nil message += "ドラマ−が脱退しました。\n" } func reportMember()->String{ if(bass == nil){ message += "ベースは決まっていません。" }else{ message += "ベースは\((bass!).name)さん。" } if(drums == nil){ message += "ドラムは決まっていません。" }else{ message += "ドラムは\((drums!).name)さん。" } return message + "\n" } } class Musician{ let name:String var part:String var tour:Tour? init(name:String, part:String){ self.name = name self.part = part } deinit{ if(tour != nil){ tour!.message += "\(name)さんは都合により休業します。\n" } } } class ViewController: UIViewController { @IBOutlet weak var resultText: UITextView! override func viewDidLoad() { super.viewDidLoad() var myStr = "" let us2014 = Tour(name:"2014アメリカ横断スーパーツアー") us2014.addBass(Musician(name:"トニー", part:"ベース")) us2014.addDrums(Musician(name:"ビル", part:"ドラム")) us2014.delBass() myStr = us2014.reportMember() resultText.text = myStr } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }