• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ios > 400badrequestiOSblock回调无法badacess问题

400badrequestiOSblock回调无法badacess问题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了400 bad request,http 400 bad request,ajax 400 bad request,java 400 bad request,手机400bad request等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:400 bad request iOS block回调无法bad acess问题
描述:

代码里做了block回调,但是无法取到值,代码如下,麻烦看下,对于block不是很懂.问题应该是出在多线程上,dispatch after这句是在子现场执行的,直接报错了


    for (int i = 0; i<self.nativeVedioPathArr.count; i++) {

        __weak __typeof(self)weakSelf = self;
        [feedFile resumableUploadAndCallServerWithCallback:^(BOOL isSuccess, NSData * data, NSError * error) {
            if (isSuccess) {
                weakSelf.updatedVedioCount++;

                if (weakSelf.updatedVedioCount != weakSelf.nativeVedioPathArr.count) {

                }
                
                
            } else {

            }
            
            if (weakSelf.updatedVedioCount == weakSelf.nativeVedioPathArr.count) {
                dispatch_async(dispatch_get_global_queue(0, 0), ^{
                    [weakSelf deleteVedioPath];
                });
                if (weakSelf.nativeVedioPathArr.count == 1) {
                    __strong __typeof(weakSelf)strongSelf = weakSelf;
                    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
                        [CoreSVP showSVPWithType:CoreSVPTypeSuccess Msg:@"上传视频完成" duration:0.5 allowEdit:nil beginBlock:nil completeBlock:^{
                            //上传成功后回调
                        strongSelf.completeVedioBlock(strongSelf.correctVedioPathArr.copy);
                        }];
                    });
                }
                
            }
        } withProgressCallback:^(float progress) {

        }];
    }


解决方案1:

代码比较乱,大概看了一眼。
block 也不是很难就是封装一段代码,主要是行为比较复杂。
异步 + block 出现 坏访问, 一般都是线程时序问题。
我说block 和 多线程的注意点, 楼主可以自行去捋。
多线程下 哪条线程先被执行是不确定的, 捋一捋时序问题。
arc下默认是强引用
block 被强引用并且内部访问了自动变量(这个自动变量不是被弱引用修饰),那么block在堆区。
如果block 被强引用,但是内部访问的自动变量是弱引用, 比如 weakSelf ,那么block在栈区。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 400badrequestiOSblock回调无法badacess问题

相关文章

  • 2017-06-05 android服务运行状态UIStackView运行后无法正确的显示布局
  • 2017-06-05 升级到最新的mac系统后,SVN闪退,急急急急急急
  • 2017-06-05 认识物体和图形如何让物体B和C冲离物体A呢?
  • 2017-06-05 iOS悦跑圈跑步过程中调节媒体音量,如何实现
  • 2017-06-05 在刷新tableView的时候遇section加载个数的问题,求大神解答。
  • 2017-06-05 PushNotification推送服务在手机上测试时候无法收到生产环境的推送
  • 2017-06-05 iOS上传文件IOS上传视频PHAsset不支持分段上传
  • 2017-06-05 Xcode8的instruments无法定位到代码,全是内存地址
  • 2017-06-05 UI_APPEARANCE_SELECTOR写与不写好像没有区别
  • 2017-06-05 拿到一个tableview的高度,设置另一个tableview的一个cell的高度

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • iOS开发,如何跳转到系统设置页?iOS10
    • 我一个tableView滑动到底部,但是总是没有滑动到最底部,会有一小段没滑动下去
    • iOSnavigationbar的高度可以修改吗?
    • App实现http长连接技术上可行吗?有必要吗?有哪些优缺点?
    • 关于UISearchController的一个问题
    • iOS开发xib中横竖屏两种不同布局,使用autoLayout添加的约束无法正常使用?
    • IOSswiftcollectionVIew与cell的上部间距怎么调整
    • 旧工程要适配iOS10,使用UserNotifications框架中的类时编译报错,但是新建工程时则没有任何问题。为什么?
    • ios APP上架商家被拒错误汇总
    • xcode中导入python碰到的问题?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有