Objective-C 中的 nil 与基本值处理
1. 与 nil 为友
在 Objective-C 里,向 nil 发送消息通常不会有实际动作,但这并不意味着参数不会产生副作用。在消息被分发之前,消息的参数会被组装并压入栈中。参数表达式里发送的消息或者其他副作用(像值的后自增操作)依旧会出现。明确将接收者与 nil 进行比较,若相等就跳过消息,其中一个原因就是为了避免组装参数时产生不必要的副作用。
1.1 nil 返回零值
只要调用者期望消息返回表 7 - 1 里的某种变量类型,nil 接收者总会向调用者返回 nil 或者 0。兼容的变量类型本质上是任意指针或者标量。
| 返回类型 | 返回值 |
|---|---|
| id | nil |
| 任意类型的指针 | NULL |
| BOOL | NO |
| (unsigned) char | ‘\0’ |
| (unsigned) int | 0 |
| (unsigned) long int | 0L |
| (uns |
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



