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

1 客户端安全性处理方式? 1> 网络数据传输(敏感数据[账号\密码\消费数据\银行卡账号], 不能明文发送) 2> 协议的问题(自定义协议, 游戏代练) 3> 本地文件存储(游戏的存档) 4> 源代码 sip是什么? 1> SIP(Session Initiation Protocol),会话发起协议 2> SIP是建立VOIP连接的 IETF 标准,IETF是全球互联网最具权威的技术标准化组织 3> 所谓VOIP,就是网络电话,直接用互联网打电话,不用耗手机话…
1. 多线程的底层实现? 1> 首先搞清楚什么是线程.什么是多线程.多线程的使用场合(线程有时被称为轻量级进程,是程序执行流的最小单元.多线程是指软件或者硬件实现多个线程并发执行的技术.多线程的使用场合:1程序包含复杂的计算任务:2处理速度较慢的外围设备:3程序设计自身的需要) 2> Mach是第一个以多线程方式处理任务的系统,因此多线程的底层实现机制是基于Mach的线程3> 开发中很少用Mach级的线程,因为Mach级的线程没有提供多线程的基本特征,线程之间是独立的(如果面试官问还有m…
1ios框架分为:cocoa Touch:UIKit.Foundation.附属框架 Media:OpenGL ES.EAGL.Quartz.Core Animation.Core Audio.                          Open Audio Library.Media Player Core Services:Address Book.Core Foundation Core OS:线程.文件.I/O.内存和网络 2iOS网络编程层次结构四意图: Cocoa层(NSUR…
1.NSRunLoop的实现机制,及在多线程中如何使用 NSRunLoop是IOS消息机制的处理模式 >1.NSRunLoop的主要作用:控制NSRunLoop里面线程的执行和休眠,在有事情做的时候使当前NSRunLoop控制的线程工作,没有事情做让当前NSRunLoop的控制的线程休眠. >2.NSRunLoop 就是一直在循环检测,从线程start到线程end,检测inputsource(如点击,双击等操作)异步事件,检测timesource同步事件,检测到输入源会执行处理函数,首先会产生…
是否可以把比较耗时的操作放在NSNotificationCenter中 如果在异步线程发的通知,那么可以执行比较耗时的操作: 如果在主线程发的通知,那么就不可以执行比较耗时的操作 3.Foundation对象与Core Foundation对象有什么区别 1> Foundation对象是OC的,Core Foundation对象是C对象 2> Foundation对象和Core Foundation对象是可以互相转换的,数据类型之间的转换 l ARC:__bridge_retained.__b…
当你在seachBar中输入字母之前的时候,只是用鼠标选中searchBar的时候,如图 终端输出截图如下:(这个时候调用先shouldBeginEditing,之后调用didBeginEditing,) 当你希望选中UISearchBar的时候,键盘自动调用加载到界面,你需要将下面函数的返回值设置为YES: - (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar { NSLog(@"shouldBeginEditing"…
在我们开发过程中,网络请求是必不可少的,对于网络框架,现在主流的大概只有三类:ASI框架: HTTP终结者(已经停止更新了),MKNetworkKit ,AFN.今天我就来浅谈一下这个AFN AFNetworing的使用 1.AFN特性 : *登录传参数时,传递字典即可.(键名为参数名,键值为参数值). *自动到子线程中执行,执行完后返回主线程. *返回的结果自动序列化为NSDictionary. 2.使用AFN注意 : *AFHTTPRequestOperationManager封装了通过HT…
怎么解决缓存池满的问题 1> 优先移除使用次数比较少的对象 2> 优先移除缓存时间最长的对象(让年轻的活下来) 3> 优先移除占用内存比较大的对象 CAAnimation的层级结构 如果使用CAAnimation 1> 创建CAAnimation对象 2> 设置CAAnimation对象的属性 3> 添加CAAnimation对象到CALayer上,CALayer就会自动执行这个动画 UIButton与UITableView的层级结构 1> 继承结构 2> …
如果后期需要增加数据库中的字段怎么实现,如果不使用CoreData呢? 编写SQL语句来操作原来表中的字段 1> 增加表字段 ALTER TABLE 表名 ADD COLUMN 字段名 字段类型; 2> 删除表字段 ALTER TABLE 表名 DROP COLUMN 字段名; 3> 修改表字段 ALTER TABLE 表名 RENAME COLUMN 旧字段名 TO 新字段名; SQLite数据存储是怎么用? 1> 添加SQLite动态库: 2> 导入主头文件:#impor…
怎么保证多人开发进行内存泄露的检查. 如何定位内存泄露? 1> 使用Analyze进行代码的静态分析(检测有无潜在的内存泄露) 2> 通过leak检查在程序运行过程中有无内存泄露 3> 为避免不必要的麻烦, 多人开发时尽量使用ARC 2.非自动内存管理情况下怎么做单例模式. 创建单例设计模式的基本步骤 · >声明一个单件对象的静态实例,并初始化为nil. >创建一个类的类工厂方法,当且仅当这个类的实例为nil时生成一个该类的实例 >实现NScopying协议, 覆盖al…