早在2011年的暑假就曾接触过git这个版本控制工具,当时的主流版本控制还是CVS,SVN之类的,那时候跟着俄亥俄州立大学的一个软件工程老师学习开发iOS程序,他搭建了git server,用的稀里糊涂的,因为那时候对Linux是一窍不通,命令什么的都还只是停留在电影画面里,后来github火起来了,用git的人也就自然而然的多了起来,2013年刚刚开始研究僧的生活,那个时候创建了github账号,可空有程序员的架势,却怀着一颗文艺的心,直到近些日子再次捡起,才倍感酸爽,早些时候咨询同实验室的一位大神朋友ictxiangxin如何用正确的姿势使用git,大神的回答很简单,说看过git的官方文档,不可否认,官方的才是第一手资料,能有最真切的体会,不过确实是太多,就放弃了,年初时师兄推荐的一个简单的介绍git的网页颇为好用,原链接地址git使用简易指南。这里简单写写git的使用方法,算是回顾一下。
命令行无法连接 github 的问题
连接了 lantern 翻墙软件之后,网页端可以访问外网,但是命令行无法访问 GitHub,解决办法如下
iOS runtime 基础理论
iOS的runtime分为三个阶段:消息发送、动态方法解析和消息转发。
markdown语法
markdown的使用很重要,但也不是天天都用,总是使用的时候遇到各种忘,记录在这,方便后续查阅
@synthesize和@dynamic
发现自己对property中synthesize和dynamic的用法这么陌生,找到一篇挺不错的博客
原文链接:https://www.jianshu.com/p/c883687c6405
@property有两个对应的词
一个是 @synthesize,一个是 @dynamic。如果 @synthesize和 @dynamic都没写,那么默认的就是@syntheszie var = _var;
@synthesize
@synthesize表示如果属性没有手动实现setter和getter方法,编译器会自动加上这两个方法。
@dynamic
@dynamic 告诉编译器:属性的 setter 与 getter 方法由用户自己实现,不自动生成。假如一个属性被声明为 @dynamic var,而且你没有提供 @setter方法和 @getter 方法,编译的时候没问题,但是当程序运行到 instance.var = someVar,由于缺 setter 方法会导致程序崩溃;或者当运行到 someVar = var 时,由于缺 getter 方法同样会导致崩溃。编译时没问题,运行时才执行相应的方法,这就是所谓的动态绑定。
例如:
