iOS开发面试题及答案.docxVIP

  • 8
  • 0
  • 约9.42千字
  • 约 8页
  • 2026-03-12 发布于河北
  • 举报

iOS开发面试题及答案

一、基础语法与OC特性

1.说下OC中Category(分类)和Extension(延展)的区别,实际开发中你怎么用?

答案:首先从定义上来说,Category有自己的.h和.m文件,能给已有的类(包括系统类,比如NSString、UIView)添加方法,不能直接加属性(除非用runtime关联对象);Extension更像类的私有扩展,一般写在.m文件里,或者单独的.h文件(但很少这么做),可以添加私有属性、成员变量和方法声明,这些内容只有原类能访问。

实际用的时候,Category主要是拆分代码(比如把UIView的布局方法、事件处理方法分开写在不同分类里,避免单个文件太臃肿),或者给系统类加常用工具方法(比如给NSString加判断是否为空、手机号验证的方法)。Extension的话,主要是声明类的私有属性,比如控制器里的子控件、不需要暴露给外部的模型对象,还有私有方法的声明,防止方法警告。

另外要注意,Category里如果写了和原类同名的方法,会覆盖原类的方法(因为方法列表里分类的方法在前面),如果多个分类有同名方法,谁最后编译谁生效。Extension不会有这个问题,因为它的方法实现还是在原类的.m里。

2.OC中的@property关键字,你常用的修饰符有哪些?assign和weak的区别是什么?

答案:常用的修饰符分三类吧,原子性(at

文档评论(0)

1亿VIP精品文档

相关文档