Xcode多好的软件,升个级比生个孩子还难(每次都得在大半夜别人都睡觉的时候升级),还会偶尔耍个小性子让你用不舒坦。于是乎,网上就出现了各种收拾这个小妖精的方法。但是,正如你QQ里的表情包一样,只有自己收集的才能运用自如。今天我也来总结一下我平时使用Xcode的三招六式。
1. 插件篇
-
ColorSense(https://github.com/omz/ColorSense-for-Xcode )废话不多说,截图一目了然:
-
KSImageNamed(https://github.com/ksuther/KSImageNamed-Xcode )一样废话不多说,截图一目了然:
XVim(https://github.com/JugglerShu/XVim )
在Xcode下开启vim模式。BBUDebuggerTuckAway(https://github.com/neonichu/BBUDebuggerTuckAway )
可以在你编辑代码的时候,自动隐藏底部的调试窗口,当然等你运行代码的时候调试窗口又会自动跳出来,有来有回才好用。
插件兼容问题 每次升级Xcode,就会面临插件兼容问题,网上有人写了一个脚本,只要运行一下这个脚本,再重启Xcode就可以了。
//脚本代码
#!/bin/bash
#获取当前版本Xcode的DVTPlugInCompatibilityUUID
UUID=$(defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID)
echo Xcode DVTPlugInCompatibilityUUID is $UUID
#遍历每一个Xcode插件,将UUID写入插件的兼容列表中
for MyPlugin in ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/*
do
defaults write "$MyPlugin"/Contents/Info DVTPlugInCompatibilityUUIDs -array-add $UUID
echo write DVTPlugInCompatibilityUUID to $MyPlugin succeed!
done
➜ ~ Desktop //进到要创建脚本的目录里
➜ Desktop touch refreshPluginsAfterXcodeUpgrading.sh //创建脚本文件
➜ Desktop vim refreshPluginsAfterXcodeUpgrading.sh //编辑脚本文件(脚本代码⬆️代码块)
➜ Desktop chmod +x refreshPluginsAfterXcodeUpgrading.sh //给予执行权限
➜ Desktop ./refreshPluginsAfterXcodeUpgrading.sh //运行脚本 ⬇️运行结果,
balabalabalabalabala......
➜ Desktop
插件管理问题 插件装的多了就得管理,唐巧博客上有篇文章专门介绍了如何使用Alcatraz来管理Xcode插件:http://devtang.com/2014/03/05/use-alcatraz-to-manage-xcode-plugins/
2. 快捷键篇
- 选中某段代码,按下
shift
键,将代码拖至工具栏下面的“{}”的那个工具下,可设定快捷键迅速访问。 - 在编写代码的时候,按着
control
+command
,再按下“向上”或者“向下”箭头,将会快速查看当前文件的.h
文件和.m
文件。 -
shift
+command
+O
快速搜索,代码编辑窗口快速跳转到搜索的类。结合shift
+command
+J
使用,使导航窗格快速定位到该类。
command + [ // 左缩进
command + ] // 右缩进
command + / // 注释或取消注释
command + R // 编译并运行
command + B // 编译
command + shift + K // 清理
3. 自带工具篇
- 版本控制系统相关,Xcode右上角位置,如下图:
Comparison:对比不同版本代码,查看修改。
Blame:查看某段代码是谁做了修改,并做了什么修改(提交代码时添加的日志,所以提交代码的时候不要不写日志,也不要瞎写日志)。
Log:查看这个类都做过哪些修改,按时间倒序排列。
-
Instruments,
command
+i
编译运行程序,运行成功后会弹出下面界面:
Leaks检测内存泄露的工具, Zombies僵尸进程,可以监控崩溃。具体使用方法感觉需要另写文章。工具有很多,我现在还只会用这两个。
4. 其他篇
- 打印视图层的关系
po self.view.recursiveDescription
,打印结果如下图,有木有很一目了然。
-
_
+方法名部分拼写,可快速补全方法名
代码不熄,更新不止,未完待续......