我正在阅读 Cocoa Design Patterns 书籍。在书中,分配self
变量后,检查是否self
如下nil
所示
if( nil != self){
// code
}
我还看到了另一种检查自我的方法
if( self ){
// code
}
使用这两种技术有什么好处,还是只是偏好问题?
谢谢。
我正在阅读 Cocoa Design Patterns 书籍。在书中,分配self
变量后,检查是否self
如下nil
所示
if( nil != self){
// code
}
我还看到了另一种检查自我的方法
if( self ){
// code
}
使用这两种技术有什么好处,还是只是偏好问题?
谢谢。
if
块的内容
if (expression) {
// contents...
}
仅在expression
评估为非零值的情况下执行。
这意味着以下if
块中的代码
//the first if block
if (self) {
// contents....
}
将在self
非零时执行。
同时,这个 if
块的内容
// the second if block
if (self != nil) {
// contents...
}
每当self != nil
非零时执行。
运算符在两个比较数(在本例中为和)相同的情况下返回!=
,在两个比较数不相同的情况下返回。所以第二个块中的代码将在与 不同时执行。0
self
nil
1
if
self
nil
但是d在. nil
_ 因此,第二个块中的代码将在与 不同时执行。这与第一个块中的代码执行的时间完全相同:无论何时非零。#define
0
<objc/objc.h>
if
self
0
if
self
由于这两种方法导致执行完全相同的代码,因此没有技术上的理由偏爱其中一种。在这种情况下,最重要的风格考虑是初始化器的一致性。决定你喜欢哪种风格并在任何地方使用它。