2016-05-17 3 views
1

SOもともと私はここに、スウィフト2閉鎖といくつかの問題を抱えたことは私の問題だった:スウィフト2閉鎖トラブル

Cannot convert value of type '(NSArray) ->()' to expected argument type '(([AnyObject]!) -> Void)!'

UPDATE:それは誤り与え

func getImgurHotListWithViralBool(viral:Bool) -> NSArray 
{ 
    IMGGalleryRequest.hotGalleryPage(0, withViralSort: viral, 
            success:{ 
             (objects:NSArray) in 
//It gives the error here********* 
            }, 
            failure: {(error:NSError) in 

            }) 
} 

ありがたい を、 Marco Boschiはこの解決策を助けました。

func getImgurHotListWithViralBool(viral:Bool) -> NSArray { 
    IMGGalleryRequest.hotGalleryPage(0, withViralSort: viral, 
     success: { (objects: [AnyObject]!) in 
      // ... 
     }, failure: { (error:NSError) in 
      // ... 
     }) 
} 

そして今、エラーがerror:NSErrorすなわち中に存在している:

Cannot convert value of type '(NSError) ->()' to expected argument type '(([AnyObject]!) -> Void)!'

私は何をすべき?

+1

明示的なタイプを削除しようとしましたか? '成功:{オブジェクトは/ * ... * /}'になります。そして、両方のスクリーンショットではなく、あなたのコードと正確なエラーメッセージを投稿してください。 – luk2302

+1

質問を更新し、コードをテキストとして投稿してください。これは、読みやすく、参照するのをはるかに容易にします。 – rmaddy

+0

@rmaddy updated –

答えて

2

エラーメッセージで述べたようにAnyObject S([AnyObject]!)の1つの引数としてスウィフト配列、暗黙的に開封されたものを受け入れるの閉鎖を、必要と使用しているが、あなたは古いNSArrayと使用している機能コンパイラはクロージャの型を要求された型に変換できません。そのため、以下のようにコードを変更するとエラーが解決されます。

func getImgurHotListWithViralBool(viral:Bool) -> NSArray { 
    IMGGalleryRequest.hotGalleryPage(0, withViralSort: viral, 
     success: { (objects: [AnyObject]!) in 
      // ... 
     }, failure: { (error:NSError) in 
      // ... 
     }) 
} 

UPDATE:あなたが得る2番目のエラーは以前と同じである、APIはAnyObject秒の暗黙的に開封された配列を受け入れる閉鎖を望んでいますが、NSErrorを取るものを提供し、あなたがする必要がありますそれを解決するためにfailure

failure: { (error: [AnyObject]!) in 
    // ... 
} 

への署名を変更します。配列からエラーを取得する方法については、APIのドキュメントを確認してください。

+0

"(エラー:NSError)"でエラーが発生するので、これは比較的大丈夫です。lol :) –

+0

これはおそらく元のエラーのようなものです。新しいもので質問を更新してください。 –

+0

@cookiemonsta私は私の答えを更新しました、それはあなたに役立つことを願っています –