Parse.comからこのコードを追加すると、エラーが発生します。
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
if (application.applicationState == UIApplicationStateInactive) {
[PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
}
}
私は何が起こっているのか本当に理解していませんが、ログにこの警告が出ています:
-[application:didReceiveRemoteNotification:fetchCompletionHandler:]を実装しましたが、Info.plistでサポートされているUIBackgroundModesのリストに「リモート通知」を追加する必要があります。
PlistファイルにUIBackgroundModes - remote-notification
は問題を修正しますが、
しかし、それを行うと、言葉が次のように変わります。
Required Background Modes
-> App downloads content in response to Push notifications
私のアプリはそれをしないので、そもそもなぜこれをしているのか混乱しています。
リモート通知に応答してデータを取得するつもりがない場合、このデリゲートメソッドを実装できると思います。
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
例えば.
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo {
if (application.applicationState == UIApplicationStateInactive) {
[PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
}
}
現在使用しているものの代わりに。
手動で.plist
ファイルにキーを追加したくない場合は、@ MurraySagalの回答のグラフィカルバージョンがあります。1から7までの手順に従ってください。完了です。 :)
注:手順を読み込めない場合は、次の組み合わせを使用して現在のタブをズームアウトできます。 Command++ (ズームイン用)および Command+- (ズームアウト用)。もし Command 動作しません、あなたはで試すことができます Ctrl。
@djshiowはあなたの問題を解決していないと思います。
Info.plistファイルに次を追加する必要があります。
1)新しい行を追加し、左側の列で、必要なバックグラウンドモードを選択します。
2)アイテム0の行で、右の列をクリックして、「remote-notification」と入力します。 Enterキーを押します。
Xcode 6の場合:
これにより、Required background modes
キーとApp downloads content in response to Push notifications
値からinfo.plist
。
新しいdidReceive ...メソッドを使用すると、次の2つのことが行われます。
データをダウンロードしたくない場合は、これをdidReceive ...メソッドに追加できます。
completionHandler(.NoData)