- 如果给一个
id
对象发送消息,如果消息接受者没有对应的方法,则在运行时就会崩溃。因此在发消息前进行判断:
错误示范:
CZPerson *person = [array firstObject]; // firstObject返回的是id类型
[person cool];
正确示范:
id person = [array firstObject]; // firstObject返回的是id类型
if ([person isKindOfClass:[CZPerson class]]) {
CZPerson *czperson = (CZPerson *)person;
[czperson cool];
}
- 重写
setter
方法时,可以对set的值进行判断,如果不符合要求,不给变量赋值。
网友评论