移除GitHub上的错误提交

假设,你在GitHub上托管了项目,但是发现你最近的一次提交出了错。你想要撤销这个提交,那么应该怎么做呢?

假设5c24e50是这次错误提交的SHA,58c4e50是离这次提交最近的一次提交,在命令行下输入如下命令即可从5c24e50回退到58c4e50:

原文链接见这里

iPhone的屏幕尺寸

iPhone 屏幕尺寸

机型 屏幕点数 屏幕模式 屏幕对角线
iPhone 4 320 * 480 2x 3.5
iPhone 5 320 * 568 2x 4
iPhone 6 375 * 667 2x 4.7
iPhone 6P 414 * 736 3x 5.5

Effective Objective-C笔记:(十六)指定初始化方法

指定初始化方法:为对象提供必要信息以便其能完成工作的初始化方法叫做“指定初始化方法”。

通常情况下,一个类可以有多个初始化方法,以方便他人使用。考虑一个矩形类:

为了快速设置这两个属性,这个类可能会提供这样的方法:

但是如果有人使用标准的[[EOCRectangle alloc] init]来初始化一个矩形会怎么样呢?这么做是可以的,因为EOCRectangle是继承自NSObject的,所以它会使用NSObject的init方法来初始化全部实例变量,也就是说将全部实例变量设置为0或者与0等价的值。

但是假如我们不想让矩形类的这两个属性为0,因为这样创建出来的矩形可能会带来一些意想不到的结果,所以我们可以指明本类必须用指定初始化方法来初始化。可选的方案是下面两种:

以上是在使用初始化方法时要注意的一个点。其实在为一个类写初始化方法时,还有很多要注意的地方。简单总结如下:

  1. 在类中定义一个全能初始化方法,并在文档中指明。其他初始化方法均应该调用此方法。
  2. 若全能初始化方法与超类不同,则需要覆写超类中的对应方法。
  3. 如果超类的初始化方法不适用于子类,则应该覆写这个超类方法,并在其中抛出异常。