当前位置: 首页 > news >正文

iOS开发-面试总结(六)笔试(二)

面试笔试精华(二)

警告:一定要把英文题目过一遍,有些公司的题目故意弄成英文的!!!

1.        Difference between shallow copy and deep copy?

浅复制和深复制的区别?

1>   浅拷贝:指针(地址)拷贝,不会产生新对象

2>   深拷贝:内容拷贝,会产生新对象

 

2.        What is advantage of categories? What is difference between implementing a category and inheritance?

类别的作用?继承和类别在实现中有何区别?

1>   分类可以在不修改原来类模型的基础上拓充方法

2>   分类只能扩充方法、不能扩充成员变量;继承可以扩充方法和成员变量

3>   继承会产生新的类

 

3.        Difference between categories and extensions?


类别和类扩展的区别?

1>   分类是有名称的,类扩展没有名称

2>   分类只能扩充方法、不能扩充成员变量;类扩展可以扩充方法和成员变量

3>   类扩展一般就写在.m文件中,用来扩充私有的方法和成员变量(属性)

 

4.        Difference between protocol in objective c and interfaces in java?


oc中的协议和java中的接口概念有何不同?

1>  Java的接口中声明的方法必须都实现

2>  Oc的protocol中声明的方法并不一定要实现

 

5.        What are KVO and KVC?

1>  KVC是键值编码,可以通过一个字符串的key(属性名)修改对象的属性值

2>  KVO是键值监听,可以监听一个对象属性值的改变

 

6.        What is purpose of delegates?


代理的作用?

1>   两个对象之间传递数据和消息

2>   解耦,拆分业务逻辑

 

7.        What are mutable and immutable types in Objective C?


oc中可修改和不可以修改类型?

1>  mutable是可变类型,比如NSMutableArray,可以动态往里面添加元素

2>  immutable是不可变类型,比如NSArray,固定的存储空间,不能添加元素

 

8.        When we call objective c is runtime language what does it mean?


我们说的oc是动态运行时语言是什么意思?

1>   动态绑定:对象类型在运行时才真正确定

2>   多态性

 

9.        what is difference between NSNotification and protocol?


通知和协议的不同之处

1>   通过NSNotification可以给多个对象传递数据和消息

2>   通过protocol(代理模式)只能给一个对象传递数据和消息

 

10.     What is push notification?


什么是推送消息?

1>   本地推送:程序内部弹出通知到用户设备

2>   远程推送:由推送服务器推送通知到用户设备

 

11.     What is Polymorphism?


关于多态性?

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

 

12.     What is Singleton?


对于单例的理解

单例:保证程序运行过程中,永远只有一个对象实例

目的是:全局共享一份资源、节省不必要的内存开销

 

13.     What is responder chain?



 响应者链:

l  UIResponder有一个nextResponder属性,通过该属性可以组成一个响应者链,事件或消息在其路径上进行传递

l  如果UIResponder没有处理传给它的事件,会将未处理的消息转发给自己的nextResponder

 

14.    Difference between frame and bounds?


frame和bounds有什么不同?

1>  frame以父控件的左上角为坐标原点

2>  bounds以控件本身的左上角为坐标原点

 

15.     Difference between method and selector?


方法和选择器有何不同?

通过一个selector可以找到方法地址,进而调用一个方法

补充:selector是一个方法的名字,method是一个组合体,包含了名字和实现.

 

16.     Is there any garbage collection mechanism in Objective C.?


OC的垃圾回收机制?

1>  OC 1.0没有垃圾回收

2>  OC 2.0有垃圾回收,只能用在Mac上

3>  iOS中有ARC机制,是编译器特性,垃圾回收是运行时特性

 

17.     What is NSOperation queue?


1>   用来存放NSOperation对象的队列,可以用来异步执行一些操作

2>   一般可以用在网络请求等耗时操作

 

18.     What is lazy loading?


延迟加载:比如控制器的view,在第一次用到view时才会调用loadView方法进行创建

19.     Can we use two tableview controllers on one viewcontroller?

是否在一个视图控制器中嵌入两个tableview控制器?

从技术角度上分析,一个控制器内部添加2个表格控制器是没有问题的

 

20.     Can we use one tableview with two different datasources? How you will achieve this?



一个tableView是否可以关联两个不同的数据源?你会怎么处理?

从对象属性上分析,tableView只有一个dataSource属性。当然,真要使用2个不同的数据源,还是有其他办法解决的

转载于:https://www.cnblogs.com/stronger-ios-lcx/p/5629900.html

相关文章:

  • HoloToolkit项目源码剖析 - Spatial Mapping功能实现
  • html form post/get
  • 阿里云服务器Linux CentOS安装配置(四)yum安装tomcat
  • 3.saltstack模块介绍
  • Dedecms去掉URL中a目录的方法
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 查看进程命令
  • 『Java』Servlet 最简教程
  • 获取微信openid
  • Obsolete此API即将移除
  • Colorful Image Colorization 的环境配置
  • 上下左右滚动插件
  • TableViewCell重影问题
  • HDU1048 The Hardest Problem Ever
  • CentOS下配置Hadoop集群:java.net.NoRouteToHostException: No route to host问题的解决
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 08.Android之View事件问题
  • docker容器内的网络抓包
  • ECMAScript入门(七)--Module语法
  • IP路由与转发
  • JS 面试题总结
  • mysql innodb 索引使用指南
  • vue总结
  • 安装python包到指定虚拟环境
  • 系统认识JavaScript正则表达式
  • 新版博客前端前瞻
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​queue --- 一个同步的队列类​
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (转)【Hibernate总结系列】使用举例
  • (转)EXC_BREAKPOINT僵尸错误
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .NET 使用 XPath 来读写 XML 文件
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET程序员迈向卓越的必由之路
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • @Transient注解
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ACTF2020 新生赛]Include
  • [Android] Implementation vs API dependency
  • [Android] Android ActivityManager
  • [Bugku]密码???[writeup]
  • [C++] 默认构造函数、参数化构造函数、拷贝构造函数、移动构造函数及其使用案例
  • [C++]C++基础知识概述
  • [codevs 1515]跳 【解题报告】
  • [CQOI 2010]扑克牌
  • [git] windows系统安装git教程和配置
  • [halcon案例2] 足球场的提取和射影变换
  • [HarekazeCTF2019]encode_and_encode 不会编程的崽
  • [Interview]Java 面试宝典系列之 Java 多线程