网站大量收购闲置独家精品文档,联系QQ:2885784924

iOS工程师面试笔试题.docxVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

iOS工程师面试笔试题

前言:以下iOS工程师面试笔试题,部分来源于网络,笔者在此处收集起来,既是要巩固自我,也希望能够帮助到同样需要的人!参考答案均为笔者所写,其有疑问或者出错之处,请在评论中提出,谢谢!不喜勿喷!

1.#import和#include的区别?

参考答案:

#import是Objective-C导入头文件的语法,可保证不会重复导入。

#include是C/C++导入头文件的语法,如果是Objective-C与C/C++混编码,

对于C/C++类型的文件,还是使用#include来引入,这种写法需要添加防重复导入的语法。

2.@class的作用

参考答案:

@class一般用于头文件中通过前向声明,就可以声明了,但是在.m文件中还是需要使用#import进来的。它的作用只是前向声明。

3.用NSLog函数输出一个浮点类型,结果四舍五入,并保留一位小数

参考答案:

floatmoney=1.011;

NSLog(@%.1f,money);

使用%f来格式化,其中要保留一位小数,因此再用%.1f就是保留一位。

4.property属性的修饰符有什么样的作用

参考答案:

property是属性访问声明,扩号内支持以下几个属性:

getter=getName、setter=setName:设置setter与getter的方法名readwrite、readonly:设置可供访问级别

assign:方法直接赋值,不进行任何retain操作,为了解决原类型与环循引用问题

retain:其setter方法对参数进行release旧值再retain新值,所有实现都是这个顺序

copy:其setter方法进行copy操作,与retain处理流程一样,先对旧值

release,再copy出新的对象,retainCount为1。这是为了减少对上下文的依赖而引入的机制。

nonatomic:非原子性访问,不加同步,多线程并发访问会提高性能。注意,如果不加此属性,则默认是两个访问方法都为原子型事务访问。

5.self.name=@object和name=@object有什么不同?

参考答案:

self.name=”object”:会调用对象的setName()方法;name=

“object”:会直接把object字符串赋值给当前对象的name属性。

6.viewDidLoad、loadView和viewDidUnload何时调用

参考答案:

viewDidLoad在view加载完成时调用,loadView在controller的view为nil时调用。对于viewDidUnload现在已经不能直接调用了。

7.objective-c中的可变与不可变词典

参考答案:

可变字典就是可以增、删、改操作的字典,对应于NSMutableDictionary类型。

不可变字典就是不能执行增、删、改操作的字典,对应于NSDictionary类型。

8.Objective-C的内存管理

参考答案:

现在内存管理几乎都采用ARC,也就是AutomaticReferenceCounting,意思是自动引用计数。由编译器在编译时自动为添加retain、release等代码。

如果问的MRC,也就是ManualReferenceCounting,意思是手动内存管理。

黄金法则:谁使对象的引用计数+1,不再使用该对象时,谁就应该使该对象的引用计数-1。

9.自动生成getter/setter方法

参考答案:

对于以前的代码,那时还没有property,使用这样的方法来创建:

-(void)setName:(NSString*)aName;

-(NSString*)name;

在后面有了property,直接使用@property(nonatomic,copy)NSString

*name这样的方法来声明,编译器会自动生成getter/setter方法并生成一个_name成员变量。

10.什么是MVC

参考答案:

我相信大部分人在被问到这个问题时,都会回答M就是Model,V就是View,C就是Controller。这都是停留在概念上的回答,明显没有什么工作经验。对于一个对框架和架构有一定的思想的人,回答时会从项目的耦合度、团队开发如

何减少冲突、如何降低团队与团队之间的沟通成本、如何将M、V、C之间按照既定的标准建立沟通的桥梁。

Model用于处理数据,通常来说,Model中会包含多

文档评论(0)

我的文档我做主 + 关注
实名认证
文档贡献者

有偿文档使用

1亿VIP精品文档

相关文档