1

https://stackoverflow.com/a/10319761/1680408を参照してください。私のアプリでは、ユーザーはオーディオビデオと画像をサーバーにアップロードできます。アプリケーションがバックグラウンドに移行した場合、そのタスクは終了するまでそのままにしておく必要があります。私は投稿が提案した解決策を実装しました、そしてそれはうまくいきます!ただし、面白い警告が生成されます。

以下のものを使用すると、次のようになります。

- (void)beingBackgroundUpdateTask
{
self.backgroundUpload = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
    [self endBackgroundUpdateTask];
}];

//
}

この次の例では、修正の提案があります。

- (void)endBackgroundUpdateTask
{
self.backgroundUpload = UIBackgroundTaskInvalid;
[[UIApplication sharedApplication] endBackgroundTask:self.backgroundUpload];
}

修正を使用すると、コードが機能しないことが示唆されます。正直に言うと、それが機能するので、私はそれほど大騒ぎしていません。しかし、これが原因でAppleが私のアプリを拒否するのではないかと心配しています。だからちょっと、後悔するよりも安全になりたいだけです。この種の問題が却下されないという事実を誰かが知らない限り。とても奇妙!この種の警告が表示されるたびに、アプリがクラッシュします。私はこれを検索しましたが、提案は実際には役に立ちませんでした。簡単な修正があるのか​​、それとも一般的な修正だけなのか、誰か知っていますか?

ありがとう!

4

1 に答える 1

4

変数をどのように宣言しましたbackgroundUploadか?

UIBackgroundTaskIdentifier *backgroundUpload;

これにより、この警告が表示されます。上記の行から*を削除します。

UIBackgroundTaskIdentifier backgroundUpload;
于 2012-11-22T04:43:17.133 に答える