iOS开发——面试笔试精华(四)
面试笔试精华(四)
1. Object-C有多继承吗?没有的话用什么代替?
1> OC是单继承,没有多继承
2> 有时可以用分类和协议来代替多继承
2. Object-C有私有方法吗?私有变量呢?
1> OC没有类似@private的修饰词来修饰方法,只要写在.h文件中,就是公共方法
2> 可以直接在.m文件中(比如类扩展)声明和实现方法,对编译器来说是私有的
3. 关键字const什么含义?
const int a;
int const a;
const int *a;
int const *a;
int * const a;
int const * const a;
1> 前两个的作用是一样:a 是一个常整型数
2> 第三、四个意味着 a 是一个指向常整型数的指针(整型数是不可修改的,但指针可以)
3> 第五个的意思:a 是一个指向整型数的常指针(指针指向的整型数是可以修改的,但指针是不可修改的)
4> 最后一个意味着:a 是一个指向常整型数的常指针(指针指向的整型数是不可修改的,同时指针也是不可修改的)
4. static的作用?
1> static修饰的函数是一个内部函数,只能在本文件中调用,其他文件不能调用
2> static修饰的全部变量是一个内部变量,只能在本文件中使用,其他文件不能使用
3> static修饰的局部变量只会初始化一次,并且在程序退出时才会回收内存
5. 线程和进程的区别?
1> 一个应用程序对应一个进程,一个进程帮助程序占据一块存储空间
2> 要想在进程中执行任务,就必须开启线程,一条线程就代表一个任务
3> 一个进程中允许开启多条线程,也就是同时执行多个任务
6. 堆和栈的区别?
1> 堆空间的内存是动态分配的,一般存放对象,并且需要手动释放内存
2> 栈空间的内存由系统自动分配,一般存放局部变量等,不需要手动管理内存
7. 为什么很多内置的类,如TableView的delegate的属性是assign不是retain?
1> tableView的代理一般都是它所属的控制器,控制器会对它内部的view做一次retain操作
2> 假设tableView也对代理(控制器)做一次retain操作,那么就出现循环retain问题
8. 定义属性时,什么情况使用copy、assign、retain?
1> copy:NSString、Block等类型
2> assign:基本数据类型
3> retain:OC对象类型
9. 对象是什么时候被释放的?
每个对象都有一个引用计数器,每个新对象的计数器是1,当对象的计数器减为0时,就会被销毁
10. tableView的重用机制?
这里只是简述:将离开屏幕的cell放到缓存池,重新拿来显示到屏幕的其他位置(其他自己详细描述)
11. ViewController 的loadView、viewDidLoad、viewDidUnload分别是什么时候调用的,在自定义ViewCointroller时在这几个函数中应该做什么工作?
1> loadView
- 当第一次使用控制器的view时,会调用loadView方法创建view
- 一般在这里自定义view
2> viewDidLoad
- 当控制器的view创建完毕时会调用,也就是在loadView后调用
- 一般在这里添加子控件、初始化数据
3> viewDidUnload
- 当控制器的view因为内存警告被销毁时调用
- 一般在这里回收跟界面相关的资源(界面都会销毁了,跟界面相关的资源肯定不要了)
12. ViewController的didReceiveMemoryWarning是在什么时候调用的?默认的操作是什么?
- 当应用程序接收到系统的内容警告时,就有可能调用控制器的didReceiveMemoryWarning方法
- 它的默认做法是:
l 当控制器的view不在窗口上显示时,就会直接销毁,并且调用viewDidUnload方法
13. 怎么理解MVC,在Cocoa中MVC是怎么实现的?
1> M:Model,模型,封装数据
2> V:View,视图界面,负责展示数据
3> C:Controller,控制器,负责提供数据(Model)给界面(View)
14. self.跟self->什么区别?
1> self.是调用get方法或者set放
2> self是当前本身,是一个指向当前对象的指针
3> self->是直接访问成员变量
15. id、nil代表什么?
1> id类型的指针可以指向任何OC对象
2> nil代表空值(空指针的值)
16. 如何对iOS设备进行性能测试?
Timer Profile
iOS开发——面试笔试精华(四)的更多相关文章
- iOS开发——面试笔试精华(二)
面试笔试精华(二) 警告:一定要把英文题目过一遍,有些公司的题目故意弄成英文的!!! 1. Difference between shallow copy and deep copy? ...
- iOS开发——面试笔试精华(三)
面试笔试精华(三) 1. When to use NSMutableArray and when to use NSArray? 什么时候使用NSMutableArray,什么时候使用N ...
- iOS开发——面试笔试精华(一)
面试笔试精华(一) 1. #import 跟#include.@class有什么区别?#import<> 跟 #import”"又什么区别? 1> #imp ...
- iOS开发Swift篇—(四)运算符
iOS开发Swift篇—(四)运算符 一.运算符 1.Swift所支持的部分运算符有以下一些 赋值运算符:= 复合赋值运算符:+=.-= 算术运算符:+.-.*./ 求余运算符:% 自增.自减运算符: ...
- iOS开发——面试指导
iOS面试指导 一 经过本人最近的面试和对面试资料的一些汇总,准备记录这些面试题,以便ios开发工程师找工作复习之用,本人希望有面试经验的同学能和我同时完成这个模块,先出面试题,然后会放出答案. 1. ...
- iOS开发之窥探UICollectionViewController(四) --一款功能强大的自定义瀑布流
在上一篇博客中<iOS开发之窥探UICollectionViewController(三) --使用UICollectionView自定义瀑布流>,自定义瀑布流的列数,Cell的外边距,C ...
- ios开发入门篇(四):UIWebView结合UISearchBar的简单用法
UIWebView是ios开发中比较常用的一个控件.我们可以用它来浏览网页.打开文档等,今天笔者在这里简单介绍下UIWebView和UISearchBar结合起来的用法,做一个简单的类浏览器. 一: ...
- ios开发——面试篇C语言精华
面试篇C语言精华 1.面向过程:分析解决问题所需要的步骤,然后用函数把这些步骤一步一步实 现. 面向对象:直接描述客观世界的对象及其相互关系.现实世界中任何实体都 可以看作是对象,对象之间通过消 ...
- iOS开发——面试总结(一)
面试总结(一) 通过网络搜寻和自己总结经历找了一些IOS面试经常被问道的问题: 1.搞清楚touch事件的传递(事件的响应链) 事件的响应(responder chain) 只有继承了UIRespon ...
随机推荐
- bzoj1856
这是一道无比涨姿势的题目 首先总结一下这种输入几个数的题目, 一般不是递推就是数学题 显然,这道题用递推是无法做到O(n)的复杂度的 那我们就考虑这是一道数学题了 我已开始纠结在正向思维了,正向求好像 ...
- acdream 小晴天老师系列——竖式乘法(简单穷举)
小晴天老师系列——竖式乘法 Time Limit: 4000/2000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) ...
- MyEclipse/Eclipse导入sun.misc.BASE64Encoder jar包步骤
1.右键项目 -->Properties -->Java Bulid Path-> Libraries -->JRE System Library-->Access ru ...
- 学习面试题Day05
1.如何理解数组在Java中作为一个类? Java的数组本质上是一个类,该类还保存了数据类型的信息.该类通过成员变量的形式来保存数据,并且通过[]符号,使用下标来访问这些数据.在处理基本类型数据时,数 ...
- 我的WCF之旅(3):在WCF中实现双工通信
双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息.基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合.双工MEP又具 ...
- 如何编写Linux设备驱动程序
一.Linux device driver 的概念 系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口.设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看 ...
- Selenium 使用方法小结
基本介绍: Selenium工具专门为WEB应用程序编写的一个验收测试工具. Selenium的核心:browser bot,是用JAVASCRIPT编写的. Selenium工具有4种:Sele ...
- linux常识
一.linux常识 1.为什么学习linux及如何学习linux? 基于linux的操作系统是一种自由和开放源代码的类UNIX操作系统,其定义组件是linux内核,其稳定性.安全性.处理多并发已经得到 ...
- 浅谈reverse_iterator的base()函数
非原创,原文链接:http://blog.csdn.net/shuchao/article/details/3705252 调用reverse_iterator的base成员函数可以产生"对 ...
- uva 11178
题意:根据A,B,C三点的位置确定D,E,F三个点的位置. 贴模板 #include<cstdio> #include<cmath> #include<cstring&g ...