• some knowledge


    注意
    关于cornerstone无法上传library文件的问题 
    上面是我要添加的library文件,网上提供的方法是

    在CornerStone的菜单栏里面 View->ShowIgnoreItems
    把library标记为Add就可以上传了
    .a文件默认被标记为可忽略的文件,有些不需要传到SVN的文件也可以在CornerStone通过ignore来处理 











    闪退的原因
    我想一般用户所谓的秒退应该就是程序crash了。 

    从开发的角度来讲一般有以下几个原因: 

    1.操作了不该操作的对象,野指针之类的。 

    2.对内存警告处理不当。 

    3.主线程UI长时间卡死,被系统杀掉。 

    4.程序内部异常逻辑没处理好。 

    5.sdk版本差异没处理好。


    6.app load时间过长,也会造成闪退

    我遇到的闪退
    》秒退发生在覆盖安装之后,因为旧版本app的Core Data数据格式与新版app不同,新版程序再读取旧版数据会直接crash。而读取core data数据一般在第一个界面的viewwillapear中执行,所以就直接表现为秒退。
    》野指针的错误,导致秒退。 
    在准备新手引导时,载入资源的路径为了图方便,做了本地化(NSLocalizedString),版本更新时,刚好翻译修改了这个字符串的翻译,导致路径找不到,由于这个模块没有做好异常处理app一开机就crash了。 
    测试时,所有的ios设备,所有的升级,所有的系统(ios 3.1 之后的版本)都测试通过了。 
    但就是有一个国家的语言版本没有测试。结果这个地区更新了的程序都崩溃了。
     
    1、@dynamic与@synthesize的区别
         @property有两个对应的词,一个是@synthesize,一个是@dynamic。如果@synthesize和@dynamic都没写,那么默认的就是                  @synthesize
         @synthesize的语义是如果你没有手动实现setter和getter方法,那么编译器会自动为你加上这两个方法。
         @dynamic告诉编译器,属性的setter与getter方法由用户自己实现,不自动生成。(对于readonly的属性只需提供getter即可)。假如一个属性被声明为@dynamic var,然后你没有提供@setter方法和@getter方法,编译的时候没问题,但是当程序运行到instance.var =someVar,由于缺setter方法会导致程序崩溃;或者当运行到 someVar = var时,由于缺getter方法同样会导致崩溃。编译时没问题,运行时才执行相应的方法,这就是所谓的动态绑定。
  • 相关阅读:
    使用 Scrapy 爬取股票代码
    基于python开发的股市行情看板
    基于django的视频点播网站开发
    一个基于php+mysql的外卖订餐网站(带源码)
    线性表概述及单链表的Java实现
    使用github pages搭建个人博客
    解决SpannableString在Android组件间传递时显示失效的问题
    Android进程间通信(一):AIDL使用详解
    Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)
    Linux创建普通用户
  • 原文地址:https://www.cnblogs.com/GhostKZShadow/p/5105465.html
Copyright © 2020-2023  润新知