ios面试题积累

什么是多态,为什么要使用多态。

多态:父类指针指向子类对象

使用多态的原因:使用多态可以把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化,简化编程中复杂的逻辑,方便程序功能的实现。

Self和super的区别?

self:
self其实是个指针,谁调用了方法,self就指向谁

super:
super是指向父类的指针。super若处在对象方法中,那么就会调用父类的对象方法,super若处在类方法中,那么就会调用父类的类方法

一句话概括self和super的区别:
self指向本类,super指向父类

定义属性时候,什么情况下用copy、assign、retain、strong、week

copy: relsase旧值,copy新值,这样可以减少上下文的依赖,常用于(NSString)

assign: 直接赋值(用于非oc对象类型)

retain: release旧值,retain新值(用于非arc中的oc对象类型)(在非arc中,两端循环引用的时候,一端用retain,另一端用assign)

strong: 成员变量强指针,适用于arc中的oc对象类型

weak: 成员变量弱指针,适用于arc中的oc对象类型(在arc中,当端循环引用的时候,一端用strong,一端用assign),常用于UI控件和在一个类中创建一个delegate属性

分类使用注意:

1.分类能增加方法,不能增加成员变量

2.分类方法实现中可以访问原来类中申明的成员变量

3.分类可以重新实现原来类中的方法,但是会覆盖原来的方法,会导致原来的方法没法再使用

4.方法调用的优先级:分类–>原来类–>父类

5.分类中同名的方法调用顺序(后编译优先)

分类的注意总结

1.Category可以访问原始类的实例变量,但不能添加变量,如果想添加变量,可以考虑通过继承创建子类

2.Category可以实现原始类的方法,但不推荐这么做,因为它是直接替换掉原来的方法,这么做的后果是再也不能访问原来的方法

3.多个category中如果实现了相同的方法,只有最后一个参加编译的才会有效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值