2017-03-10 12 views
0

の文字列を返す関数があります。しかし、私は自分の関数で初期のリターン機能を使いたいと思っています。このような何か:Swift 3の戻り値の型[String]を持つ関数からの早期戻り3

func fetchPerson() -> [String] { 
    guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { 
     return nil 
    } 
    ....... 
    ....... 
} 

しかし、私は同じような問題に直面している:

nilの戻り値の型と互換性がありません '[文字列]' 私だけreturn文を書いてみました

。しかしそれはまた失敗する。何をすべきか?

編集:1

私はちょうど任意の値なしでこの関数から戻って返すようにしたい場合はどのような。この関数の呼び出しが起こった行に戻ってください。次のようなものがあります。

func fetchPerson() -> [String] { 
    guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { 
     return //return to the line where function call was made 
    } 
    ....... 
    ....... 
} 
+1

戻り空の配列は.. 'FUNC fetchPerson() - > [文字列] { ガードはappDelegate = UIApplication.shared.delegateようにしましょうか! AppDelegate else { return [] 返信[] } –

+0

戻って何の値でも戻したくないのですか? @ EICaptainv2.0 – nayem

+0

fetchPerson()。count> 0かどうかを確認して、さらに作業を進めてください –

答えて

1

このエラーは2通り解決できます。

  • [String]手段から[String]?のいずれかに変更の戻り値の型は 戻り値の型をオプションに。 return nilからreturn []

    func fetchPerson() -> [String]? { 
        guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { 
         return nil 
        } 
        ....... 
        ....... 
    } 
    
  • どちらかの変更return文は リターン空の配列を意味しています。

    func fetchPerson() -> [String] { 
        guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { 
         return [] 
        } 
        ....... 
        ....... 
    } 
    
+0

else条件が満たされたときに関数から戻ってみたいのですが? 'return'だけを書こうとするとどうなりますか? – nayem

+0

@nayemそれで 'guard let'ではなく' if let'を使うことができます。 –

+0

いいえ、私が言っていたことは、**私は何の価値もなく戻ってきたいと思っています**。 – nayem

関連する問題