美文网首页
iOS常见面试题归纳(二)代码篇

iOS常见面试题归纳(二)代码篇

作者: 背靠背的微笑 | 来源:发表于2017-07-31 17:37 被阅读39次
图片来自网络

1、请简述self.name = xxx 与_name= xxx 的区别

self.name = xxx 是调用setName方法
_name = xxx 不会调用setName方法 是直接赋值

2、下面的代码会输出什么?

@implementation Son : Father
- (id)init {
   if (self = [super init]) {
       NSLog(@"%@", NSStringFromClass([self class]));
       NSLog(@"%@", NSStringFromClass([super class])); 
   }
   return self;
}
@end

// 解析:
son
son
self 是类的隐藏参数,指向当前调用方法的这个类的实例。
super是一个Magic Keyword,它本质是一个编译器标示符,和self是指向的同一个消息接收者。
不同的是:super会告诉编译器,调用class这个方法时,要去父类的方法,而不是本类里的。
上面的例子不管调用[self class]还是[super class],接受消息的对象都是当前 Son *obj 这个对象。

相关文章

网友评论

      本文标题:iOS常见面试题归纳(二)代码篇

      本文链接:https://www.haomeiwen.com/subject/mvmrlxtx.html