2013-11-15 14 views
65

私はparse.comから、このコードを追加した後に、エラーを取得しています:解析警告:fetchCompletionHandler

- (void)application:(UIApplication *)application 
didReceiveRemoteNotification:(NSDictionary *)userInfo 
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { 
    if (application.applicationState == UIApplicationStateInactive) { 
     [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo]; 
    } 
} 

私は本当に何が起こっているか理解していないが、私はログにこの警告を取得していますしかし、 あなたはまだあなたのInfo.plistであなたの サポートUIBackgroundModesのリストに "リモート通知" を追加する必要があります - :[:didReceiveRemoteNotification:fetchCompletionHandler アプリケーション]を

あなたは実装しました。 >App downloads content in response to push notifications

-

Required Background Modes:私は、あなたのplistファイルUIBackgroundModes - remote-notificationに追加することで問題を解決するだろうと思う

しかし、私は、それはフォローに言葉を変え、それを行うとき

私のアプリはしません、なぜ私が最初にこれをやっているのか混乱しています。

答えて

30

あなたは私はあなたがこのデリゲートメソッドを実装することができると思いリモート通知に応答してデータをフェッチする予定がない場合:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 

例えば

- (void)application:(UIApplication *)application 
didReceiveRemoteNotification:(NSDictionary *)userInfo { 
    if (application.applicationState == UIApplicationStateInactive) { 
     [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo]; 
    } 
} 

現在使用しているものではなく、

+0

これはまさに私が必要としていたものです。解析ガイドに従えば、プッシュでデータをバックグラウンドでダウンロードしたいという前提です。私はしません。だから、この答えは私にとって正しいものです。 – xaphod

+2

主な違いは、 'didReceiveRemoteNotification:'メソッドの 'fetchCompletionHandler:'バージョンを実装していないことです。 – pkamb

+3

iOS 10 ' - (void)アプリケーション:(UIApplication *)アプリケーションdidReceiveRemoteNotification:(NSDictionary *)userInfo'は非推奨です – Giorgio

34

@djshiowはあなたの問題を解決していないと思います。

はあなたのInfo.plistファイルに次のように追加する必要があります。

remote-notification

1)は、新しい行を追加して、左の列に、必要なバックグラウンドモードを選択します。

2)項目0の行で、右の列をクリックして、リモート通知と入力します。 Enterを押します。

出典:Xcodeの6ではhttp://hayageek.com/ios-silent-push-notifications/

22

  • プロジェクトナビゲータでプロジェクトおよびターゲットリストで、プロジェクト
  • をクリックして、ターゲットをクリックします。
  • クリック機能
  • 展開し、バックグラウンドモードをオンに
  • クリックしてリモート通知

これはRequired background modesキーとinfo.plistApp downloads content in response to push notifications値を追加します。

205

.plistファイルに手動でキーを追加したくない場合は、@ MurraySagalの答えをグラフィカルに表示し、1から7までの手順を実行すると完了します。 :)

enter image description here

注:手順を読み出すことができない場合は、コマンド(ズーム用) + +コマンドの組み合わせを使用して、現在のタブをズームアウトすることができます + -(ズームアウト用)。 コマンドが機能しない場合は、Ctrlで試してみてください。

+3

これは非常に役に立ちました!ありがとうございました! –

+1

これは私が持っていたGCMの問題を修正しました。これは良い方法です – MNM

+1

完璧な解決策! –

0

新しいdidReceiveを使用する場合...あなたは2つのことを行うことが期待されている方法:

  1. あなたのplistに必要なエントリ
  2. を追加しますが、処理するためのイベントを処理する完了ハンドラを追加します。データ

あなたが任意のデータをダウンロードしたくない場合は、あなたがあなたのdidReceiveにこれを追加することができます...方法

completionHandler(.NoData)