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 |
| (unsigned) lon |
超级会员免费看
订阅专栏 解锁全文
755

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



