• ios- -[__NSCFType invalidate]: unrecognized selector sent to instance 0x18894a30错误随笔


    问题:app点支付按钮,跳到支付宝web页面,程序进入后台,程序卡死,支付完成或取消支付时,程序crash。

    报错:-[__NSCFType invalidate]: unrecognized selector sent to instance 0x18894a30,错误原因是对已经销毁的对象,发送了消息,程序访问不到对象。

    我集成了保利视频,发生错误的代码

     - (void)initPloyVideo

    {

        PolyvSettings *polyvSettings = [[PolyvSettings alloc] init];

        [polyvSettings initVideoSettings:@"ylzOkbgQcn" Readtoken:@"AAiK2jiX0t-BAnX4n6CrX-xV0TfqPUML" Writetoken:@"ZDYlp4fGF8g100D-TYug02Z14idkcelP" UserId:@"00018093b1"];

    }

    这样的话,polyvSettings是局部变量,出了initPloyViedeo方法,polyvSettings为nil。再次进入程序时,向polyvSettings发消息,就是向已经释放了得内存发消息,程序crash。

    改错之后的代码:

    //先加一个成员变量,再AppDelegate里加成员变量,相当于整个工程的全局变量,程序销毁,polyvSettings才为nil,程序不销毁,polyvSettings不为nil;

    @interface AppDelegate : UIResponder <MiPushSDKDelegate,UIApplicationDelegate>

    {

        PolyvSettings *polyvSettings;

    }

    - (void)initPloyVideo

    {

        polyvSettings = [[PolyvSettings alloc] init];

        [polyvSettings initVideoSettings:@"ylzOkbgQcn" Readtoken:@"AAiK2jiX0t-BAnX4n6CrX-xV0TfqPUML" Writetoken:@"ZDYlp4fGF8g100D-TYug02Z14idkcelP" UserId:@"00018093b1"];

    }

    这样的话,程序从后台回来,还可以对polyvSettings发送消息,执行方法,程序完美运行。

  • 相关阅读:
    redis
    配置ssh无密码登陆Linux
    nginx rewrite规则笔记
    git自动部署到服务器
    从电影《Her》来看AI时代下,未来的七夕我们将会如何度过?
    人工智能+智能制造,会产生什么火花?
    大数据时代,市场对企业级云存储的需求更加迫切
    别太神化AI,也别太小看智能医疗
    自动驾驶江湖,将有一场恶战
    区块链 | 详解以太坊的工作原理
  • 原文地址:https://www.cnblogs.com/rankilau/p/4580744.html
Copyright © 2020-2023  润新知