zoukankan      html  css  js  c++  java
  • 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发送消息,执行方法,程序完美运行。

  • 相关阅读:
    关于工作习惯的一点思考
    BulkSqlCopy 批量导入数据(Ef支持)
    记录下最近项目中常用到的SQL语句
    对象化前端表单(Form)提交
    Python描述符 (descriptor) 详解
    Python装饰器之 property()
    Python魔法方法之属性访问 ( __getattr__, __getattribute__, __setattr__, __delattr__ )
    Python魔法方法总结及注意事项
    面向对象编程(二)
    面向对象编程(一)
  • 原文地址:https://www.cnblogs.com/rankilau/p/4580744.html
Copyright © 2011-2022 走看看