1

参考https://stackoverflow.com/a/10319761/1680408。在我的应用程序中,用户可以将音频视频和图像上传到服务器。如果应用程序进入后台,我需要保留该任务直到它完成。我实施了帖子建议的解决方案并且它有效!但是,它会产生有趣的警告。

使用下面的一个,我得到:“从'UIBackgroundTaskIdentifier'(又名'unsigned int')分配给'UIBackgroundTaskIdentifier *'(又名'unsigned int *')的不兼容整数到指针转换

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

//
}

有了下一个,我得到了一个修复建议:“指向整数转换的不兼容指针将'UIBackgroundTaskIdentifier *'(又名'unsigned int *')发送到参数类型'UIBackgroundTaskIdentifier'(又名'unsigned int');尊重*

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

当我使用修复它建议代码不起作用时。老实说,我并不太大惊小怪,因为它有效。但是我担心苹果会因此拒绝我的应用程序。所以有点只是想安全而不是抱歉。除非有人知道这类问题不会被拒绝。太奇怪了!任何其他时候我收到这种类型的警告我的应用程序崩溃!我对此进行了一些搜索,但建议并没有真正帮助。任何人都知道是否有快速修复或只是一般修复?

谢谢!

4

1 回答 1

4

你是如何声明变量的backgroundUpload

UIBackgroundTaskIdentifier *backgroundUpload;

这将给出这个警告。从上面的行中删除 *。

UIBackgroundTaskIdentifier backgroundUpload;
于 2012-11-22T04:43:17.133 回答