Tips
2018-08-02 本文已影响0人
_狸约约
不自动锁屏
[UIApplication sharedApplication].idleTimerDisabled=YES
自动锁屏
[UIApplication sharedApplication].idleTimerDisabled=NO
清除一个项目的编译缓存
alt+command+shift+K
Swift运行时根据类名实例化对象
if let dic = Bundle.main.infoDictionary, let nameSpace = dic["CFBundleExecutable"] as? String {
let clsName = nameSpace + "." + "ViewController"
if let cls = NSClassFromString(clsName), let vcCls = cls as? UIViewController.Type {
let c = vcCls.init()
self.navigationController?.pushViewController(c, animated: true)
}
}
lldb(gdb)常用的控制台调试命令?
1). p 输出基本类型。是打印命令,需要指定类型。是print的简写
p (int)[[[self view] subviews] count]
2). po 打印对象,会调用对象description方法。是print-object的简写
po [self view]
3). expr 可以在调试时动态执行指定表达式,并将结果打印出来。常用于在调试过程中修改变量的值。
4). bt:打印调用堆栈,是thread backtrace的简写,加all可打印所有thread的堆栈
5). br l:是breakpoint list的简写
调用的入口
Thread.callStackSymbols
统计自己的工程有多少行代码
打开终端,cd到工程所在文件夹
1、列出工程共有多少行(grep -v "^$" 是去掉空行,注释也在代码量内)
find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs grep -v "^$"|wc -l
2、列出每个文件分别有多少行
find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs wc -l
多线程遍历数组(对遍历的顺序没有要求时)
DispatchQueue.concurrentPerform(iterations: array.count) { (index) in
print("\(array[index])")
}
Swift中类似OC在函数体内定义static变量
因为swift中不支持添加不附加到类/结构的静态变量,可以尝试下面这种投机的方法
func test() {
struct User {
static var count = 0
}
User.count = User.count + 1
print("\(User.count)")
}
通过runTime获取一个类的全部属性/方法
var count1: UInt32 = 0
var count2: UInt32 = 0
let members = class_copyIvarList(UIView.self, &count1)//获取所有属性
let methods = class_copyMethodList(UIView.self, &count2)//获取所有方法
for i in 0 ..< Int(count1) {
let v = members![i]
let a = ivar_getName(v)
let t = ivar_getTypeEncoding(v)
print("\(String(utf8String: a!)),\(String(utf8String: t!))")
//object_setIvar()通过这个方放,可以修改属性值
}
for i in 0 ..< Int(count2) {
let m = methods![i]
let n = method_getName(m)
print("\(String(utf8String: sel_getName(n)))")
}
Git创建公钥/私钥
1.检查本机是否已有公钥
在终端中输入如下命令:
$ cd ~/.ssh
2.如果电脑中有以前遗留的密钥,将其删除掉
使用如下命令:
$ mkdir key_backup
$ cp id_rsa* key_backup
$ rm id_rsa*
3.生成新的公钥
终端中输入如下命令
$ ssh-keygen -t rsa -C "邮箱地址"
之后终端会提示几次密码设置,如果设置了密码,在向Git仓库进行代码交互操作时需要键入密码,也可以全部回车带过,表示不需要密码。
4.向Git仓库中导入公钥
在.ssh文件夹下使用ls命令查看所有文件,可以看到生成了一个id_rsa.pub的文件,使用vi工具打开它,将其内容复制出来,在Git仓库中新建公钥,复制上去即可。例如github中导入密钥过程