你们知道,self.property
实际上是调用了类的 [self property]
方法,因此这实际上是有一层方法调用的隐藏,不少时候,咱们须要延迟初使化一个类成员的时候,就会把这个成员的初使化方法写在这个 [self property]
方法的实现中。html
那么问题来了,当你在阅读别人代码时,看到 self.property
的时候,你会想:这里会不会有一些隐藏的函数实现?因而你须要跳转到其方法实现中去查找。可是在实际开发中,大部分的 property 实际上是使用编译器自动生成的 Getter 和 Setter 方法,因而你会找不到实现,这个时候,你才知道:“哦,原来这段代码并无作自定义的成员初使化工做”。ios
这种默认的隐藏在代码中多了,会影响代码的阅读和维护。其实大部分的类成员变量都须要在类初使化方法中赋值,大部分的 UIViewController 的成员变量,都须要在 viewDidLoad
方法中赋值。那既然这样,不如直接在相应的方法中用一个名为 setupProperty
方法直接进行初使化。这样的好处是,代码的可读性更好了,self.property
只有须要延迟初使化的状况下才被使用。git
参考连接:objective-c
1.http://blog.devtang.com/2015/03/15/ios-dev-controversy-1/spring
2.https://touchspring.gitbooks.io/document/content/iOS/objective-c_%E5%8F%8D%E5%B0%84%E7%AF%87.html函数