后台任务标识符上载生成错误

时间:2012-11-22 03:40:02

标签: iphone objective-c ios6 asyncfileupload

参考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会拒绝我的应用程序。所以有点想要比抱歉更安全。除非有人知道这类问题不会被拒绝。太奇怪了!任何其他时间我得到这种类型的警告我的应用程序崩溃!我做了一些搜索,但建议并没有真正帮助。任何人都知道是否有一个快速修复或只是修复一般修复此问题?

谢谢!

1 个答案:

答案 0 :(得分:4)

你是如何声明变量backgroundUpload的?

UIBackgroundTaskIdentifier *backgroundUpload;

这会发出此警告。从上面的行中删除*。

UIBackgroundTaskIdentifier backgroundUpload;