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中导入密钥过程

上一篇下一篇

猜你喜欢

热点阅读