开发Tips收集-2017年02月

这些小Tips为本人近期读书笔记,收集来自网络开发者发布的技术文档,并非原创,共享的目的是为了扩散分享技术,共同进步。如有侵权不得转载等情况,请联系我告知,谢谢!

9月份出去玩了一趟又回了个国,在外面晃了快两个月,啥工作都荒废了。更别说回来以后就开始犯懒打滚不工作,一直到年前才开始整理近半年积攒下来的未读文章😛,真是工程浩大!只好拿出耐心慢慢来……

  • APP包瘦身
    1. 删除项目中没有使用的图片。 查找XCode工程中没被使用的图片资源
    2. 删除项目中没有用到的class 和 xib 及storyboard。分析工程中没有用到class
      • 安装 fui 工具:sudo gem install fui -n /usr/local/bin
      • fui usage: https://github.com/dblock/fui
      • 到工程目录下,执行 fui find 命令,可以找出所有的没有用到的class文件。
    3. 分析ipa包,找出大于500K的文件或内容 使用find . -type f -size +500000c | xargs ls -lh
  • 给代码排序:使用Spotlight来搜索Automator,并打开它;然后点击File->New,并选择服务(service)一项;在Actions筛选栏,输入shell,然后双击运行shell脚本;在新添加的服务的菜单栏上,检查Output replaces selected text;

    你看到的是非授权版本!爬虫凶猛,请尊重知识产权!

    转载请注明出处:http://conanwhf.github.io/2017/02/28/Tips201702/

    访问原文「开发Tips收集-2017年02月」获取最佳阅读体验并参与讨论

    将脚本内容切换至sort | uniq;同时按下command + s,将服务保存为 Sort & Uniq。
  • iOS之报错“Cannot create _weak reference in file using manual reference counting”解决办法:在Build Settings———>Aplle LLVM8.0 - Language - Objectibe-C————->Weak Reference In Manual Retain Release 设置为YES。
  • 尽量不要调用familyName来创建系统文字,否则会导致系统字体的自动调整功能失效。
  • sqlite 数据库中,当把表里的数据都清空时,下次插入的数据的 id 主键不会从 0 开始。保险起见 下次从数据库获取数据时先获取第一个的 id 主键
  • 如果设置了 tableView 的上边距再使用 MJRefresh时,刷新控件会错位,可使用忽略 tableView等的内边距方法,该方法在类:MJRefreshHeader 里,方法名 ignoredScrollViewContentInsetTop
  • 填写表单型的 tableView,用到了 textField 要注意需要显示的是 textField.text 还是 textField.placeholder,注意 cell 循环引用。 需要写多种类似的表格时,UI 界面就一套,用本地不同的 plist 数据去控制表格,给数据很多属性来区分:增加正则判断数值,增加样式…
  • kvc 修改已有类的私有属性是可以的,使用苹果未暴露的类的私有属性和方法是不允许的
  • 真机测试的时候报错:“The application could not be verified”。解决方法:删除 App;重启 Xcode;Xcode clean;Xcode run
  • Xcode 8日志疯了解决办法:在 Scheme 设置里加一条 OS_ACTIVITY_MODE ,设置为 disable
  • 如果我们想知道程序启动的时间,则可以在工程的scheme中添加环境变量DYLD_PRINT_STATISTICS,这样在调试时,可以在控制台打印出程序启动过程中各个阶段所消耗的时间。
  • 使用struct来定义常量,可以最大程度地利用Swift类型安全的语言特性,使你在编译期就可以检查出一些低级的失误。
  • 使用Asset Catalogs来图像资源文件:采取Asset Catalog进行统一管理后,不仅工程干净清爽了许多,还可以用一张矢量图来让XCode自动为你生成不同分辨率的资源。