2017-09-14 6 views
0

私は設定したUIDocumentInteractionControllerを返すfuncを持っています。リターンfuncでのnilの処理は可能ですか?

問題は、ドキュメントURLを作成できない場合、返信したいが、funcはビューアを返す必要があるため問題ではないということです。 funcがビューアを返すようにURLが有効であったか、それは...

func saveBase64StringToPDF(base64String: String, title: String) -> UIDocumentInteractionController { 
    guard var documentsURL = (FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)).last, 
      let convertedData = Data(base64Encoded: base64String) 
     else { 
      return // issue is here 
    } 

    documentsURL.appendPathComponent(title) 

    do { 
     try convertedData.write(to: documentsURL) 
    } catch { 
     print("FAILED TO WRITE") 
    } 
    let interactionController = UIDocumentInteractionController(url: documentsURL) 
    return interactionController 
} 
+2

funcで作成するsaveBase64StringToPDF(base64String:String、title:String) - > UIDocumentInteractionController? –

答えて

0

ない場合は、オプションの戻り値をしなければならない存在する場合、どのように私は、この機能を編集することができます。メソッド宣言の戻り型に

func saveBase64StringToPDF(base64String: String, title: String) -> UIDocumentInteractionController? { 
    guard var documentsURL = (FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)).last, 
      let convertedData = Data(base64Encoded: base64String) 
     else { 
      return nil 
      } 
    } 

    documentsURL.appendPathComponent(title) 

    do { 
     try convertedData.write(to: documentsURL) 
    } catch { 
     print("FAILED TO WRITE") 
    } 

    let interactionController = UIDocumentInteractionController(url: documentsURL) 
    return interactionController 
} 
+4

しかし、関数の投げを作成して、それが失敗した理由を説明する適切なエラーを投げる方が良いです。 – user28434

1

使用UIDocumentInteractionController?代わりに任意のクラスまたはオブジェクトに次UIDocumentInteractionController

?のそれはオプションでコンパイラに指示。オプションは、値またはnilを含むことができます。

関連する問題