文章目录
  1. 1. 图标
  2. 2. CocoaPods
  3. 3. 线程方案
  4. 4. RunLoop
  5. 5. iOS8适配
  6. 6. iOS9适配
  7. 7. iOS性能调优
    1. 7.1. Analyze静态分析
    2. 7.2. Leaks内存泄露
      1. 7.2.1. 补充
    3. 7.3. Allocation内存使用
    4. 7.4. Zombies僵尸对象(EXC_BAD_ACCESS)
    5. 7.5. 参考文章
  8. 8. 自动化部署
  9. 9. stackoverflow
  10. 10. 其他

总结一下项目中用到的工具和技术,以便以后的查看。

图标

在线通过1024 * 1024图片生成iPhone 1倍、2倍、3倍图片

CocoaPods

CocoaPods详解之—-使用篇

CocoaPods详解之—-进阶篇

CocoaPods详解之—-制作篇

怎样在Swift中使用CocoaPods

怎样在swift中创建一个CocoaPods

使用Cocoapods创建私有podspec

线程方案

在iOS开发中其实有4套多线程方案,他们分别是:

pthreads

POSIX线程(POSIX threads),简称pthreads,是线程的POSIX标准。该标准定义了创建和操作线程的一整套API。在类Unix操作系统(Unix、Linux、Mac OS X等)中都使用pthreads作为操作系统的线程。

NSThread

GCD

NSOperation&NSOperationQueue

iOS 并发编程之 Operation Queues

并发编程之Operation Queue

关于iOS多线程,你看我就够了

RunLoop

RunLoop的简单介绍

iOS8适配

在iOS 8中使用UIAlertController

WWDC 2014 Session笔记 - iOS界面开发的大一统

Alamofire网络库基础教程

iOS9适配

iOS9之适配ATS

如何使用ATS提高应用的安全性

苹果新『应用通信安全』的理解和使用

UIStackView如何让你的开发更简单

整理iOS9适配中出现的坑(图文)

iOS性能调优

Analyze静态分析

逻辑错误、声明错误、api调用错误基本在编译时都会有警告,Analyze的主要的优势在于静态分析内存泄露及代码逻辑错误。

  1. 逻辑错误:访问空指针或未初始化的变量等。
  2. 内存管理错误:如内存泄露等。
  3. 声明错误:从未使用过的变量。
  4. api调用错误:未包含使用的库和框架。

Leaks内存泄露

把Snapshot Interval 间隔时间设置为10秒,勾选Automatic Snapshotting,Leaks会自动进行内存捕捉分析。在你怀疑有内存泄露的操作前和操作后点击Snapshot Now进行手动捕捉。

Leaked Object的表格中显示了内存泄露的类型、数量及内存空间。

点击具体的某个内存泄露对象,在右侧Detail窗口中会出现导致泄露可能的位置,其中黑色部分代表了最可能的位置。双击即可进入代码。

开启了ARC并不是就不会存在内存问题,苹果有句名言:ARC is only for NSObject。

补充

1、正常编译没问题,在Profile 中就编译通不过。

选择Profile,将Build Configuration设置为Debug,这样在.pch文件中,#ifdef DEBUG 编译条件下定义的宏才生效。

2、Symbol Name 列的友好显示。

BuildOpthions–>DebugInfomationFormat=DWARF with dSYM File

Xcode编译项目后,我们会看到一个同名的 dSYM 文件,dSYM 是保存 16 进制函数地址映射信息的中转文件,我们调试的 symbols 都会包含在这个文件中,并且每次编译项目的时候都会生成一个新的 dSYM 文件。

Allocation内存使用

  1. 在进入一个视图前或操作前,我们在Allocation面板左侧点击Mark Generation,这时候会产生Generation A节点,显示内存当前的情况。
  2. 在进入视图后再点一次Mark Generation。
  3. 在视图退出后再点一次Mark

这样三次产生的 Generation分别记录了进入前、进入后、关闭后,在最后一个Generation应该内存被合理释放,否则就代表了在这个视图或操作中有泄漏或不合理的地方。

Zombies僵尸对象(EXC_BAD_ACCESS)

用于查找那些被过度释放的僵尸对象(overreleased objects)。

  1. 启动Instruments,选择Zombies。
  2. 对之前产生EXC_BAD_ACCESS的测试用例重新运行,直到程序崩溃,如果发生EXC_BAD_ACCESS错误,会出现对应界面。
  3. 通过滑动箭头来查看错误细节,例如可以看到该对象的内存操作过程,如malloc、autorelease、retain、release等操作。
  4. 查看底部的详细历史,选择相应的行可以定位到相应的代码,找出产生错误的代码

参考文章

一次TableView性能优化经历

iOS性能调优系列

自动化部署

deliver用于上传应用的二进制代码、应用截屏和原数据到应用商店

snapshot可以自动化iOS应用在每个设备上的本地化截屏过程

frameit用于在应用截屏外添加设备框架

PEM可以自动化地生成和更新应用推送通知描述文件

sigh可以生成并下载开发者的应用商店配置文件

Fastlane为iOS带来持续部署

马建成系列

stackoverflow

stackoverflow在中国被墙了,不能登陆进行答题和收藏,所以在此记录工作中有所帮助的问题!根据链家基本上就能看出大概的问题了,以此来纪念那些被解决的问题!

http://stackoverflow.com/questions/26865132/strings-in-switch-statements-string-does-not-conform-to-protocol-intervaltyp#

http://stackoverflow.com/questions/25951195/swift-print-vs-println-vs-nslog#

http://stackoverflow.com/questions/28427458/ios-webrtc-library-supporting-both-armv7-arm64

其他

如何利用搜索框

Xcode各版本官方下载及百度云盘下载, Mac和IOS及Xcode版本历史.

文章目录
  1. 1. 图标
  2. 2. CocoaPods
  3. 3. 线程方案
  4. 4. RunLoop
  5. 5. iOS8适配
  6. 6. iOS9适配
  7. 7. iOS性能调优
    1. 7.1. Analyze静态分析
    2. 7.2. Leaks内存泄露
      1. 7.2.1. 补充
    3. 7.3. Allocation内存使用
    4. 7.4. Zombies僵尸对象(EXC_BAD_ACCESS)
    5. 7.5. 参考文章
  8. 8. 自动化部署
  9. 9. stackoverflow
  10. 10. 其他