iOS 上传图片报错
Warning: A long-running operation is being executed on the main thread.
Break on warnBlockingOperationOnMainThread() to debug.
求指点
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到iOS上传图片至OSS时的警告:“A long-running operation is being executed on the main thread”,这意味着您正在主线程上执行一个耗时的操作,这在iOS开发中是不推荐的,因为它可能导致应用界面冻结,影响用户体验。为解决此问题,请按照以下步骤操作:
问题描述:
可能原因:
解决步骤:
示例代码调整如下(基于已提供的参考资料):
// 创建上传请求
OSSPutObjectRequest *put = [OSSPutObjectRequest new];
// 配置请求参数...
// 使用异步方式执行上传任务
[[OSSClient defaultInstance] putObject:put completionHandler:^(OSSPutObjectResult * _Nullable result, NSError * _Nullable error) {
if (!error) {
NSLog(@"Upload object success!");
} else {
NSLog(@"Upload object failed, error: %@", error);
}
}];
这里通过completionHandler的方式提交上传任务,OSS SDK会自动处理任务在后台线程的执行,避免阻塞主线程。
注意事项:
通过上述修改,您可以避免在主线程执行耗时的文件上传操作,从而消除警告并提升应用性能。