iOS开发技巧

作者: 阿咿呀嘿 | 来源:发表于2015-04-19 18:57 被阅读186次

    1、设置断点

    当在模拟器上程序崩溃时,断点通常直接跳到了main函数中,无法判断具体哪一行代码开始崩溃,添加一个All Exceptions断点就可以了。

    2、工程报如下错误:

    fatal error: file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk/.../xxx.h' has been modified since theprecompiled header '/Users/Lycros/Library/Developer/Xcode/DerivedData/ModuleCache/.../***.pch.pch' was built

    解决方式如下:

    Quit Xcode and remove everything in the module cache located here:

    ~/Library/Developer/Xcode/DerivedData/ModuleCache (删除该文件中的缓存即可)

    The cache that was built with a previous version of Xcode is invalid for this version of Xcode and SDK, and that is causing your error

    3、iOS模拟器键盘增加中文输入

    (1)在模拟器设置中系统语言设置为中文,键盘中添加中文键盘

    (2)Xcode菜单项 --> Product --> Scheme --> Edit Scheme -->  Run --> Option --> Application Region 设置为 “中国”

    (3)Command+shift+k连接电脑键盘、Command+shift+k弹出后收起模拟器键盘

    4、关于inputView的坑

    自己实现了一个CommentInputView类,在使用该类时,实例名称写为了inputView,结果调试程序在触发一个长按手势后,总是莫名其妙弹出一个全面的背景视图,之后inputView设置为第一响应者时,提示父控制器类型不对然后崩溃。最终排查发现:UIResponder类也有一个属性叫inputView,The custom input view to display when the receiver becomes the first responder. (read-only)。明白了,CommentInputView继承自UIResponder,因此本身已经存在inputView属性,而自己的变量命名与系统变量命名冲突了。

    5、模拟内存警告

    如果是在模拟器上,可以直接使用模拟器快捷键Cmd+M;

    也可以通过代码主动触发内存警告:

    [[UIApplication sharedApplication] performSelector:@selector(_performMemoryWarning)];

    6、特殊注释

    // TODO:待实现的功能

    // FIXME:待修复BUG

    // ???:有疑问的代码

    // !!!:待改进

    // MARK:突出标记的代码

    相关文章

      网友评论

        本文标题:iOS开发技巧

        本文链接:https://www.haomeiwen.com/subject/fsbyfttx.html