2017-11-23 22 views
0

Swiftを使用してiOSアプリケーションにFB共有機能を実装しています。使用しているモジュールは「Facebookshare」です。私は既に正しくなっていますが、結果を知る必要があります。 1つのウィンドウがポップアップするたびに表示され、投稿またはキャンセルすると、ウィンドウが消えて戻り値が返されます。私はそれがユーザーによって投稿またはキャンセルされているかどうかを知る必要があるので、どのようにコードを修正する必要がありますか? アイデアをいただければ幸いです。関連 コード:Swift上のFB共有機能

import FacebookShare 

let urlToGet = //urlToGetTheContent 
let content = LinkShareContent(url: NSURL(string: urlToGet)! as URL) 
do { let x = try ShareDialog.show(from: self, content: content) 
     print(x) //x is to show the status, but it is always 'FacebookShare.ShareDialog<FacebookShare.LinkShareContent>' 
     } catch { 
     //handling errors 
     } 

また、私はそれをコンパイルすることができますが、コードを実行したときに私のアプリは常にクラッシュし、私はそれを使用していなかった、Facebookの公式ウェブサイト上の例を見てきました。 https://developers.facebook.com/docs/swift/sharing/graph-api
誰かがdocのコードを修正する方法を知っていますか?それで私の問題は終わったと思う。

答えて

0

ShareDialogクラスに静的showメソッドと同じ名前のインスタンスメソッドがあるので、少し混乱します。あなたのコードフラグメントでは、静的(クラスレベル)関数のバージョンShareDialog.showにアクセスしています(大文字のsに注意してください)。

Sharing With The Share Dialogのセクションを読んで、インスタンスメソッドshareDialog.show(小文字のsに注意してください)を呼び出すコードを見てください。このサンプルコードでは、探している結果を処理するために完了ハンドラを指定する方法を示します。このハンドラは、ContentSharerResult(成功、失敗、キャンセルを含む列挙型)の型になります。

ちなみに、static funcは省略可能な引数として完了ハンドラも受け入れ、デフォルトはnilです。あなたが好きで閉包構文に慣れているなら、それを使うことができます。それ以外の場合は、リンクに示すようにinstanceメソッドを使用します。

+0

あなたのヒントをありがとう!問題は修正されました。 –