iOS知识点

  • 苹果谷歌OC标准命名规范,比较详细规范,大家可以参考看看,里面有些相关的内容是我们这边存在遗漏的。
  • 减少我们的工程文件编译的时间,由于当前我们的pod工程文件包含了其它多pod库,为了减少工程编译时间,可以做以下的优化,比喻在终端输入:
1
pod update beibei_oversea && find . -iname "*.pch" -exec touch -t 01010000 "{}"

1.因为每个pod都有一个pch文件,每次pod update或者pod install都会导致pch的时间戳改变,这样这个pch文件就会导致整个pod重新编译,上面一行的意思是将工程中所有的pch文件的时间戳改为01010000,这样pch的时间戳不变,就不会导致整个pod需要重新编译了!

2.以上方式建议使用iterm2进行操作。

1
2
3
4
5
6
7
8
9
10
11
12
然后把这两个函数放到你的~/.zshrc下

function pod_dev {
command="export PODFILE_TYPE=DEV && pod $@ && find Pods -iname '*.pch' -exec touch -t 01010000 '{}' \;";
echo $command;
eval $command;
}

function pod_online {
command="export PODFILE_TYPE=ONLINE && pod $@ && find Pods -iname '*.pch' -exec touch -t 01010000 '{}' \;";
eval $command;
}

只要pod_dev update —no-repo-update beibei_oversea就行了

注意:如果使用了pod_dev,此时PODFILE_TYPE被改成了DEV,如果要用线上的,请务必用pod_online(而非pod),这样会把PODFILE_TYPE改为ONLINE,就可以正常使用线上的pod了

  • lldb的e命令小技巧可以在调试程序时立即暂时地修改一个视图的颜色,不用去改代码
1
2
3
(lldb) e button.backgroundColor = [UIColor redColor]
(UICachedDeviceRGBColor *) $0 = 0x00007f9f13290c30
(lldb) e (void)[CATransaction flush]
  • lldb的expression命令小技巧可以在调试程序时暂时地修改内容,不用去改代码
1
(lldb) expression target = @"tuan_list"
  • po [[UIWindow keyWindow] recursiveDescription]可以打印当前window对象的所有视图层级,方便快速定位。