Swift

Swift:URLのnil対応

savePanelの処理でnilを取り扱う必要があったのですが、Xcode8.3.3でパパッと問題解決できず、大きく躓きました。

改めて整理してみると、CallSavePanelの呼び出しインターフェイスがNSURLからURLに変わったことがそもそもの原因のようですが、どの段階で、なぜそうしたかまではここでは言及しないことにします。wFolderURL as URL?の?をつけないと制御が戻って来たとき、パッと落ちてしまい、困りました。

元々のコード

  • var wFolderURL:NSURL? = nil
  • let wExportURL:NSURL = Com.CallSavePanel([“mesa”], pMsg:cm.rcMsgSavePanel, pDirURL:wFolderURL, pCreateDir:true)
  • func CallSavePanel(pFType:[String], pMsg:String, pDirURL:NSURL, pCreateDir:Bool)        -> NSURL

Xcode8.3.3

  • var wFolderURL:NSURL? = nil
  • var wExportURL:URL? = nil
  • wExportURL = Com.CallSavePanel([“mesa”], pMsg:rcMsgSavePanel, pDirURL:wFolderURL as URL?, pCreateDir:true)
  • func CallSavePanel(_ pFType:[String], pMsg:String, pDirURL:URL?, pCreateDir:Bool) -> URL?

Categories: Swift, 技術