1 客户端安全性处理方式?

1> 网络数据传输(敏感数据[账号\密码\消费数据\银行卡账号], 不能明文发送)

2> 协议的问题(自定义协议, 游戏代练)

3> 本地文件存储(游戏的存档)

4> 源代码

  1. sip是什么?

1> SIP(Session Initiation Protocol),会话发起协议

2> SIP是建立VOIP连接的 IETF 标准,IETF是全球互联网最具权威的技术标准化组织

3> 所谓VOIP,就是网络电话,直接用互联网打电话,不用耗手机话费

  1. 有些图片加载的比较慢怎么处理?你是怎么优化程序的性能的?

1> 图片下载放在异步线程

2> 图片下载过程中使用占位图片

3> 如果图片较大,可以考虑多线程断点下载

  1. 你实现过一个框架或者库以供别人使用么?如果有,请谈一谈构建框架或者库时候的经验;如果没有,请设想和设计框架的public的API,并指出大概需要如何做、需要注意一些什么方面,来使别人容易地使用你的框架。

1> 提供给外界的接口功能是否实用、够用

2> 别人使用我的框架时,能不能根据类名、方法名就猜出接口的具体作用

3> 别人调用接口时,提供的参数是否够用、调用起来是否简单

4> 别人使用我的框架时,要不要再导入依赖其他的框架

  1. App需要加载超大量的数据,给服务器发送请求,但是服务器卡住了如何解决?

1> 设置请求超时

2> 给用户提示请求超时

3> 根据用户操作再次请求数据

  1. 地图导航不能用了怎么办

提示用户打开导航定位功能

  1. SDWebImage具体如何实现

1> 利用NSOperationQueue和NSOperation下载图片, 还使用了GCD的一些函数(解码GIF图片)

2> 利用URL作为key,NSOperation作为value

3> 利用URL作为key,UIImage作为value

  1. AFN 与 ASI 有什么区别

1> AFN基于NSURL,ASI基于底层的CFNetwork框架,因此ASI的性能优于AFN

2> AFN采取block的方式处理请求,ASI最初采取delegate的方式处理请求,后面也增加了block的方式

3> AFN只封装了一些常用功能,满足基本需求,直接忽略了很多扩展功能,比如没有封装同步请求;ASI提供的功能较多,预留了各种接口和工具供开发者自行扩展

4> AFN直接解析服务器返回的JSON、XML等数据,而ASI比较原始,返回的是NSData二进制数据

  1. 你在实际开发中,有哪些手机架构与性能调试经验

1> 刚接手公司的旧项目时,模块特别多,而且几乎所有的代码都写在控制器里面,比如UI控件代码、网络请求代码、数据存储代码

2> 接下来采取MVC模式进行封装、重构

l 自定义UI控件封装内部的业务逻辑

l 封装网络请求工具类

l 封装数据存储工具类

  1. runloop定时源和输入源

1> 你创建的程序不需要显示的创建run loop;每个线程,包括程序的主线程(main thread)都有与之相应的run loop对象, 主线程会自行创建并运行run loop

2> Run loop处理的输入事件有两种不同的来源:输入源(input source)和定时源(timer source)

3> 输入源传递异步消息,通常来自于其他线程或者程序。定时源则传递同步消息,在特定时间或者一定的时间间隔发生

  1. 你们项目中都用了哪些框架, 及何种开发工具,具体到是哪个版本,这个版本的特性有哪些???(比如xcode的版本)

1> AFN、SDWebImage、MBProgressHUD等 (搜索: 网易新闻 第三方库)

2> Xcode 5.0

  1. 自己怎么实现原子锁

iOS中一般用nonaotomic

  1. 即时通讯中的大数据处理

用put上传到文件服务器,然后发带url的自定义格式的给对方,对方接收到之后下载

  1. json解析的具体实现

1> SBJson

2> JSONKit

3> NSJSONSerialization

  1. 如果在网络数据处理过程中,发现一处比较卡,一般怎么解决

1> 检查网络请求操作是否被放在主线程了

2> 看看异步请求的数量是否太多了(子线程数量)

3> 数据量是否太大?如果太大,先清除一些不必要的对象(看不见的数据、图片)

4> 手机CPU使用率和内存问题

  1. 怎么介绍一个项目

1> 项目的价值(可以加些“老板”关键字)

2> 项目的模块

3> 我做的是哪个模块

  1. 怎么解决sqlite锁定的问题

1> 设置数据库锁定的处理函数

int sqlite3_busy_handler(sqlite3*, int(*)(void*,int), void*);

2> 设定锁定时的等待时间

int sqlite3_busy_timeout(sqlite3*, 60); :

iOS技术面试08:其他的更多相关文章

  1. iOS技术面试01:多线程与网络

    1. 多线程的底层实现? 1> 首先搞清楚什么是线程.什么是多线程.多线程的使用场合(线程有时被称为轻量级进程,是程序执行流的最小单元.多线程是指软件或者硬件实现多个线程并发执行的技术.多线程的 ...

  2. iOS技术面试07:第三方框架

    1ios框架分为:cocoa Touch:UIKit.Foundation.附属框架 Media:OpenGL ES.EAGL.Quartz.Core Animation.Core Audio.    ...

  3. iOS技术面试06:应用程序

    1.NSRunLoop的实现机制,及在多线程中如何使用 NSRunLoop是IOS消息机制的处理模式 >1.NSRunLoop的主要作用:控制NSRunLoop里面线程的执行和休眠,在有事情做的 ...

  4. iOS技术面试03:Foundation

    是否可以把比较耗时的操作放在NSNotificationCenter中 如果在异步线程发的通知,那么可以执行比较耗时的操作: 如果在主线程发的通知,那么就不可以执行比较耗时的操作 3.Foundati ...

  5. iOS搜索框UISearchBar 分类: ios技术 2015-04-03 08:55 82人阅读 评论(0) 收藏

    当你在seachBar中输入字母之前的时候,只是用鼠标选中searchBar的时候,如图 终端输出截图如下:(这个时候调用先shouldBeginEditing,之后调用didBeginEditing ...

  6. 网络请求工具--AFNetworking 分类: ios技术 2015-02-03 08:17 76人阅读 评论(0) 收藏

    在我们开发过程中,网络请求是必不可少的,对于网络框架,现在主流的大概只有三类:ASI框架: HTTP终结者(已经停止更新了),MKNetworkKit ,AFN.今天我就来浅谈一下这个AFN AFNe ...

  7. iOS技术面试05:UI控件

    怎么解决缓存池满的问题 1> 优先移除使用次数比较少的对象 2> 优先移除缓存时间最长的对象(让年轻的活下来) 3> 优先移除占用内存比较大的对象 CAAnimation的层级结构 ...

  8. iOS技术面试04:数据存储

    如果后期需要增加数据库中的字段怎么实现,如果不使用CoreData呢? 编写SQL语句来操作原来表中的字段 1> 增加表字段 ALTER TABLE 表名 ADD COLUMN 字段名 字段类型 ...

  9. iOS技术面试02:内存管理

    怎么保证多人开发进行内存泄露的检查. 如何定位内存泄露? 1> 使用Analyze进行代码的静态分析(检测有无潜在的内存泄露) 2> 通过leak检查在程序运行过程中有无内存泄露 3> ...

随机推荐

  1. TOMCAT 请求HTTP原理

    一.Tomcat是什么?Tomcat是一个Web应用服务器,同时也是一个Servlet/JSP容器.Tomcat作为Servlet容器,负责处理客户端请求,把请求传送给Servlet,并将Servle ...

  2. C# 调用cmd执行命令

    private void CmdRun_Click(object sender, EventArgs e)        {            Process p = new Process(); ...

  3. 使用jQuery快速高效制作网页交互特效--初始jQuery

    一.  jQuery基本概念介绍           1.1 什么是jQuery一个javascript库,把常用方法写到一个js文件中,需要的时候直接调用即可学习jQuery就是学习一些方法    ...

  4. js中数组元素的添加和删除

    js中数组元素常用添加方法是直接添加.push方法以及unshift方法 删除方法则是delete.pop.shift 集修改方法为一身的则是splice 1.添加: (1)直接添加通常都是这样 va ...

  5. 脚本put数据到hdfs

    1.vim putdata.sh 脚本功能: 每小时的第15分钟把上一小时的数据put到hdfs相应目录 为了避免大量的小文件,我们把文件夹下的文件cat到一个临时文件里,put成功后删除这个临时文件 ...

  6. MySQL数据库卸载有残留, windows10 sc delete 拒绝访问 失败5

    sc delete 拒绝访问,原因是当前用户的权限不足,需要做的是在注册表 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\P ...

  7. surprise库官方文档分析(三):搭建自己的预测算法

    1.基础 创建自己的预测算法非常简单:算法只不过是一个派生自AlgoBase具有estimate 方法的类.这是该方法调用的predict()方法.它接受内部用户ID,内部项ID,并返回估计评级r f ...

  8. tsar安装和使用

    Tsar简介 Tsar是淘宝自己开发的一个采集工具,主要用来收集服务器的系统信息(如cpu,io,mem,tcp等),以及应用数据(如squid haproxy nginx等). 收集到的数据存储在磁 ...

  9. redis简单消息队列

    <?php $redis = new Redis(); $redis->connect('127.0.0.1',6379); $redis->flushall(); $redis-& ...

  10. KCF追踪方法流程原理

    读"J. F. Henriques, R. Caseiro, P. Martins, J. Batista, 'High-speed tracking with kernelized cor ...