李洪强经典面试题19

                               

1. 为什么要用第三方框架?

答:第三方框架把复杂的网络底层操作 封装成友好的类和方法,并且加入异常处理等,从而可以:1> 高效的与服务端 API 进行数据交换 2> 提高开发效率和稳定性.

2. 介绍一下iOS7中增加NSURLSession?(这个是我简历中写了这个他才问的。)

我想整理一下答案来着。。。。但TMD太杂了。。。看这个博客吧。。

http://blog.csdn.net/u013082522/article/details/24699099

3.苹果的安全机制:

我当时答了大概五个:(在他的提示下)

1.  没经过用户同意,你不能随便获取用户信息。

2.  所有的程序都在沙盒里运行,B程序不能进入A程序的运行范围。

3.  如果跟钱有关,比如说支付宝,这些底层的实现都是保密的,只提供接口供开发者调用,这样的话安全性得到保障。

4.  如果要防止代码被反编译,可以将自己的代码中的.m文件封装成静态库(.a文件)或者是framework文件,只提供给其它人.h文件。这样就保证了个人代码的安全性。

5.  网络登录的话跟用户名跟密码相关要发送POST请求,如果是GET请求的话密码会直接在URL中显示。然后同时要对帐号密码采用加密技术,加一句:我们公司用的是MD5,但是现在MD5有一个专门的网站来破解,为了防止这个,可以采用加盐技术。

网上:http://mobile.51cto.com/hot-289405.htm

4.地图是怎么实现定位的?

答:鬼知道。(我当时就答了个GPS)

5.跟我讲讲runtime机制。

这是咱们面试题里的答案:

1> runtime,运行时机制,它是一套C语言库

2> 实际上我们编写的所有OC代码,最终都是转成了runtime库的东西,比如类转成了runtime库里面的结构体等数据类型,方法转成了runtime库里面的C语言函数,平时调方法都是转成了objc_msgSend函数(所以说OC有个消息发送机制)

3> 因此,可以说runtime是OC的底层实现,是OC的幕后执行者

4> 有了runtime库,能做什么事情呢?runtime库里面包含了跟类、成员变量、方法相关的API,比如获取类里面的所有成员变量,为类动态添加成员变量,动态改变类的方法实现,为类动态添加新的方法等

(当时答了这里面的一部分,但是他说不是他想要的。我就又跟他说KVO是runtime的一个典型应用,他瞪了我两眼。不知道丫想要什么。)

6.本地推送和远程推送。

本地通知和远程推送通知都可以向不在前台运行的应用发送消息,这种消息既可能是即将发生的事件,也可能是服务器的新数据.不管是本地通知还是远程通知,他们在程序界面的显示效果相同,都可能显示为一段警告信息或应用程序图标上的微章.

    本地通知和远程推送通知的基本目的都是让应用程序能够通知用户某些事情, 而且不需要应用程序在前台运行.二者的区别在于本地通知由本应用负责调用,只能从当前设备上的iOS发出, 而远程通知由远程服务器上的程序发送到APNS,再由APNS把消息推送至设备上的程序

      

     

7. 数据库文件放在哪?
答:沙盒里documents文件夹下。

沙盒里边有三个文件夹:

documents(默认为空),library(有子文件夹cashes和preferences),temp(默认为空)<如下图所示>

原文地址:https://www.cnblogs.com/LiLihongqiang/p/5645747.html