参考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'); deference with *
- (void)endBackgroundUpdateTask
{
self.backgroundUpload = UIBackgroundTaskInvalid;
[[UIApplication sharedApplication] endBackgroundTask:self.backgroundUpload];
}
当我使用修复它建议代码不起作用。为了感到高兴,我不会太激动,因为它有效。但是我担心Apple会拒绝我的应用程序。所以有点想要比抱歉更安全。除非有人知道这类问题不会被拒绝。太奇怪了!任何其他时间我得到这种类型的警告我的应用程序崩溃!我做了一些搜索,但建议并没有真正帮助。任何人都知道是否有一个快速修复或只是修复一般修复此问题?
谢谢!
答案 0 :(得分:4)
你是如何声明变量backgroundUpload
的?
UIBackgroundTaskIdentifier *backgroundUpload;
这会发出此警告。从上面的行中删除*。
UIBackgroundTaskIdentifier backgroundUpload;