当前位置:文档之家› iOS面试题

iOS面试题

iOS面试题
iOS面试题

100个iOS开发面试题汇总

100个iOS开发面试题汇总 关于iOS开发面试,不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘者技能和积累的考察,也是一个开发者自我检验的好机会。 无论是对于公司还是开发者或设计师个人而言,面试都是一项耗时耗钱的项目,从编程、设计、App Store等各个方面对iOS开发者及设计师在面试时可能会遇到的问题进行了筛选与汇总。一方面,能够帮助HR在短时间内获取更多反馈信息,更好地甄选合适人选,而iOS开发者及设计师在寻找相关工作时,也可作为参考,为面试做好万全准备。 常见问题 你昨天/这周学习了什么? 你为什么热衷于软件开发?

你对哪一种控制系统比较熟悉? 是否参与过GitHub项目? 是否参与过GitHub或其他同类型网站的iOS开源项目? 请描述一下你的iOS应用开发流程。 是否熟知CocoaPods?它是什么?如何运行的? 请概括一下你对软件授权的理解,及其对软件开发的影响。 请概括一下你在构建iOS应用时的测试过程。iOS应用如何实现对其他语言、日期格式以及货币单位的支持? 请描述一下Instruments及其作用。 关于iOS技术 请解释一下Handoff是什么,并简述它是如何实现iOS、Mac/网页应用互通的。 iCloud包含了哪些技术与服务? iOS扩展是指?能否列举一些热门或常见的范例? HealthKit是什么? HomeKit是什么?

Apple Pay是什么?能否描述一下如何在应用中使用Apple Pay? 请解释一下iOS应用沙盒机制。 VoiceOver是什么?请举例解释一下iOS中的辅助功能(Accessibility)。开发者如何使用这些功能? iOS应用是如何实现后台多任务处理(Multitasking)的? Game Center针对iOS游戏有哪些功能? iBeacons是什么? Cocoa/Cocoa Touch是什么? 请概括一下Core Audio,Core Data以及Core Location各是什么。它们对iOS应用有何意义? 请描述SpriteKit和SceneKit的作用。 Metal是什么? 响应链(Responder Chain)是什么?它是如何发挥作用的? 按钮和其他控制方式对哪些操作做出回应? AppDelegate扮演着什么样的角色?

【8】IOS面试题--数据存储

1. 什么是谓词? 答案:谓词是通过NSPredicate,是通过给定的逻辑条件作为约束条件,完成对数据的筛选。 predicate = [NSPredicatepredicateWithFormat:@"customerID == %d",n]; a = [customers filteredArrayUsingPredicate:predicate]; 2. 什么是数据持久化?简单谈一下你所了解的IOS 中的数据持久化的方式。 数据持久化就是将内存中的数据模型转换为存储模型,以及 将存储模型转换为内存中的数据模型的统称.数据模型可以 是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等。 在IOS中,少量的数据持久化可以使用属性列表、NSUserDefaults、归档等; 大量的数据持久化可以使用SQLite数据库、CoreData等,也可以使用FMDB第三方类库完成。 2. NSUserDefaults?

NSUserDefaults适合存储轻量级的本地数据,以键值对的形式进行存储,只能存储基本的OC对象(不包括自定义的对象)。 NSUserDefaults非常好用,并不需要用户在程序中设置NSUserDefaults的全局变量,需要在哪里使用NSUserDefaults的数据,那么就在哪里创建一个NSUserDefaults对象,然后进行读或者写操作。 针对同一个关键字对应的对象或者数据,可以对它进行重写,重写之后关键字就对应新的对象或者数据,旧的对象或者数据会被自动清理。 NSUserDefaults是典型的单例模式。 3. ProtocolList 属性列表,是一种用来存储串行化后的对象的文件。因为扩展名为plist,因此通常被称为plist文件。 plist文件通常用于储存用户设置,也可以用于存储捆绑的信息,其内容为xml格式。它可以在程序运行期间动态的创建和读写,因此可以用于少量数据时候的数据持久化。 3. 归档?优缺点?

iOS笔试题教学文案

i O S笔试题

iOS笔试题 姓名_________________ 时间____________________ 一、填空题(20题) 1、与alloc对应的方法是,与retain对应的方法是。 2、@property的作用是 , @synthesize的作用是。 3、一个对象的dealloc方法在时被调用。 4、分类(categories)能够向一个已有的类中添加。 拓展(extensions)能够在当前类中增 加。 5、iOS开发者账户中,最多能够添加台设备号。 6、协议(protocal)可以分为两种,其中以关键字申明的协议可以不被实现。 7、是大多数Objective-C类继承的根类,它没有父类。 8、代理(delegate)的作用是。 9、UIViewController的didReceiveMemoryWarning方法在时会调用。 10、MVC模式中,M是指,V是指,C是指。 11、autorelase的作用 是 。 12、 iOS后台运行是在系统版本才开始支持。 13、代码: - (void)setName:(NSString *)newName{ https://www.doczj.com/doc/4714353776.html, = newName; } 被调用的结果是。 14、UDID是由位十六进制字符串组成。 15、在KVC中通用的属性访问器方法是和。 16、关键字nil在Objective-C中表示。

17、#import和#include的区别是。 18、在Objective-C中是否支持运算符重载,能否在头文件里申明私有方法。 19、在Instruments工具中,用于检查内存泄露的工具是。 20、在iOS开发环境下,后缀为.a的文件又叫做。 二、单选题(20题) 1、在Objective-C中,类的成员变量默认被申明为:()A:@private B:@protected C:@public D:@package 2、iPhone、iPad、iTouch中使用的架构是()A:arm B:i386 C:x86 D:IA-32 3、下面哪个类在iPhone应用程序开发时不能使用 ( ) A:UITabViewController B:UINavigationController C:UISplitViewController D:UITableViewController 4、关于Objective-C++中的异常处理,下面说法最正确的是 () A:Objective-C不支持异常处理 B:在Objective-C++中,Objective-C的异常处理能够捕获C++的异常 C:在Objective-C++中,Objective-C的异常处理不能捕获到C++的异常 D:在Objective-C++中,Objective-C和C++的异常处理可以相互捕获异常 5、在对象的dealloc方法中,关于[super dealloc];语句说法正确的是()A:[super dealloc];有没有没有关系 B:[super dealloc];应该放在dealloc方法内的第一行 C:[super dealloc];应该放在dealloc方法内的最后一行 D:[super dealloc];位置无所谓,只要在dealloc方法里有就可以 6、下面关于方法:[[[object method1] method2] method3:[object method4]];中的method调用顺序是 ( ) A: 1 2 3 4 B: 1 2 4 3 C:4 1 2 3 D: 4 3 2 1 7、iOS开发中,HTTPS通讯是在什么位置来保障安全性()A:NSURLRequest方法里B: NSURLRequest代理方法里 C:NSURLConnection方法里D:NSURLConnection代理方法里 8、关于NSURLConnection同步通讯和异步通讯,下面说法正确的是()A: 同步通讯是指发送数据后,不等接收方回应,接着发下一个数据 B: 异步通讯时会阻塞当前线程 C: 发送同步通讯时,系统会自动创建一个单独的线程

ios面试题锦集(带答案)

iOS 面试题锦集 1.Difference between shallow copy and deep copy??浅复制和深复制的区别?? 答案:浅层复制:只复制指向对象的指针,而不复制引用对象本身。?深层复制:复制引用对象本身。?意思就是说我有个A对象,复制一份后得到A_copy 对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不 过是是一个指针,对象本身资源?还是只有一份,那如果我们对A_copy执行了 修改操作,那么发现A引用的对象同样被修改,这其实违背了我们复制拷贝的一 个思想。深复制就好理解了,内存中存在了?两份独立对象本身。?用网上一哥们 通俗的话将就是:?浅复制好比你和你的影子,你完蛋,你的影子也完蛋?深复 制好比你和你的克隆人,你完蛋,你的克隆人还活着。 2.What is advantage of categories? What is difference between implementing a category and inheritance??类别的 作用?继承和类别在实现中有何区别? 答案:category 可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改。?并且如果类别和原来类中的方法产生名称冲突,则类别将覆盖原来的方法,因为类别具有更高的优先级。?类别主要有3个作用:?(1)将类的实现分散到多个不同文件或多个不同框架中。?(2)创建对私有方法的 前向引用。?(3)向对象添加非正式协议。?继承可以增加,修改或者删除方法, 并且可以增加属性。 3.Difference between categories and extensions??类别和类 扩展的区别。 答案:category和extensions的不同在于后者可以添加属性。另外后者添加的 方法是必须要实现的。?extensions可以认为是一个私有的Category。

黑马程序员IOS面试宝典之iOS性能优化

黑马程序员:IOS面试宝典之iOS性能优化 1. 平时你是如何对代码进行性能优化的? 利用性能分析工具检测,包括静态Analyze 工具,以及运行时Profile 工具,通过Xcode工具栏中Product->Profile可以启动,启动后界面如下 比如测试程序启动运行时间,当点击Time Profiler应用程序开始运行后.就能获取到整个应用程序运行消耗时间分布和百分比.为了保证数据分析在统一使用场景真实需要注意一定要使用真机,因为此时模拟器是运行在Mac上,而Mac上的CPU往往比iOS设备要快。 为了防止一个应用占用过多的系统资源,开发iOS的苹果工程师门设计了一个“看门狗”的机制。在不同的场景下,“看门狗”会监测应用的性能。如果超出了该场景所规定的运行时间,“看门狗”就会强制终结这个应用的进程。开发者们在crashlog里面,会看到诸如0x8badf00d这样的错误代码。 2. 优化Table View 为了保证table view平滑滚动,确保你采取了以下的措施: ?正确使用`reuseIdentifier`来重用cells ?尽量使所有的view opaque,包括cell自身 ?如果cell内现实的内容来自web,使用异步加载,缓存请求结果 ?减少subviews的数量 ?尽量不适用`cellForRowAtIndexPath:`,如果你需要用到它,只用一次然后缓存结果?使用`rowHeight`, `sectionFooterHeight` 和`sectionHeaderHeight`来设定固定的高,不要请求delegate 3. UIImage加载图片 A:imagedNamed初始化 B:imageWithContentsOfFile初始化 imageNamed默认加载图片成功后会内存中缓存图片,这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象.如果缓存中没有找到相应的图片对象,则从指定地方加载图片然后缓存对象,并返回这个图片对象. 而imageWithContentsOfFile则仅只加载图片,不缓存. 大量使用imageNamed方式会在不需要缓存的地方额外增加开销CPU的时间来做这件事.当应用程序需要加载一张比较大的图片并且使用一次性,那么其实是没有必要去缓存这个图片的,用imageWithContentsOfFile是最为经济的方式,这样不会因为UIImage元素较多情况下,CPU会被逐个分散在不必要缓存上浪费过多时间. 使用场景需要编程时,应该根据实际应用场景加以区分,UIimage虽小,但使用元素较多问题会有所凸显. 1>不要在?viewWillAppear 中做费时的操作 viewWillAppear: 在view 显示之前被调用,出于效率考虑,在这个方法中不要处理复杂费时的事情;只应该在这个方法设置view 的显示属性之类的简单事情,比如背景色,字体等。要不然,用户会明显感觉到view 显示迟钝。 2>在正确的地方使用reuseIdentifier table view用`tableView:cellForRowAtIndexPath:` 为rows分配cells的时候,它的数据应该重用自UITableViewCell。一个table view维持一个队列的数据可重用的UITableViewCell 对象。

iOS笔试题

iOS笔试题 姓名_________________ 时间____________________ 一、填空题(20题) 1、与alloc对应的方法是,与retain对应的方法是。 2、@property的作用是 , @synthesize的作用是。 3、一个对象的dealloc方法在时被调用。 4、分类(categories)能够向一个已有的类中添加。 拓展(extensions)能够在当前类中增 加。 5、iOS开发者账户中,最多能够添加台设备号。 6、协议(protocal)可以分为两种,其中以关键字申明的协议可以不被实现。 7、是大多数Objective-C类继承的根类,它没有父类。 8、代理(delegate)的作用是。 9、UIViewController的didReceiveMemoryWarning方法在时会调用。 10、MVC模式中,M是指,V是指,C是指。 11、autorelase的作用 是 。 12、 iOS后台运行是在系统版本才开始支持。 13、代码: - (void)setName:(NSString *)newName{ https://www.doczj.com/doc/4714353776.html, = newName; } 被调用的结果是。 14、UDID是由位十六进制字符串组成。 15、在KVC中通用的属性访问器方法是和。 16、关键字nil在Objective-C中表示。

17、#import和#include的区别是。 18、在Objective-C中是否支持运算符重载,能否在头文件里申明私有方法。 19、在Instruments工具中,用于检查内存泄露的工具是。 20、在iOS开发环境下,后缀为.a的文件又叫做。 二、单选题(20题) 1、在Objective-C中,类的成员变量默认被申明为:()A:@private B:@protected C:@public D:@package 2、iPhone、iPad、iTouch中使用的架构是()A:arm B:i386 C:x86 D:IA-32 3、下面哪个类在iPhone应用程序开发时不能使用 ( ) A:UITabViewController B:UINavigationController C:UISplitViewController D:UITableViewController 4、关于Objective-C++中的异常处理,下面说法最正确的是 () A:Objective-C不支持异常处理 B:在Objective-C++中,Objective-C的异常处理能够捕获C++的异常 C:在Objective-C++中,Objective-C的异常处理不能捕获到C++的异常 D:在Objective-C++中,Objective-C和C++的异常处理可以相互捕获异常 5、在对象的dealloc方法中,关于[super dealloc];语句说法正确的是()A:[super dealloc];有没有没有关系 B:[super dealloc];应该放在dealloc方法内的第一行 C:[super dealloc];应该放在dealloc方法内的最后一行 D:[super dealloc];位置无所谓,只要在dealloc方法里有就可以 6、下面关于方法:[[[object method1] method2] method3:[object method4]];中的method调用顺序是 ( ) A: 1 2 3 4 B: 1 2 4 3 C:4 1 2 3 D: 4 3 2 1 7、iOS开发中,HTTPS通讯是在什么位置来保障安全性()A:NSURLRequest方法里B: NSURLRequest代理方法里 C:NSURLConnection方法里D:NSURLConnection代理方法里 8、关于NSURLConnection同步通讯和异步通讯,下面说法正确的是()A: 同步通讯是指发送数据后,不等接收方回应,接着发下一个数据 B: 异步通讯时会阻塞当前线程 C: 发送同步通讯时,系统会自动创建一个单独的线程

2012年软件评测师下午试题及答案

2012年下半年软件评测师下午试题答案 试题一(共19分)负载压力测试 【说明】 某酒店预订系统有两个重要功能,检索功能和预订功能。检索功能根据用户提供的关键字检索出符合条件的酒店列表,预订功能是对选定的某一酒店进行预订,现需要对该系统执行负载压力测试。 该酒店预订系统的性能要求为: (1)交易执行成功率100%; (2)检索响应时间在3s以内; (3)检索功能支持900个并发用户; (4)预订功能支持100个并发用户; (5)CPU利用率不超过85%; (6)系统要连续稳定运行72小时 【问题1】(3分) 简述该酒店预订系统在生产环境下承受的主要负载类型。 【问题2】(5分) 对系统检索功能执行负载压力测试,测试结果如表1-1所示。请指出响应时间和交易执行成功率的测试结果是否满足性能需求并说明原因。 表1-1 检索功能测试结果 【问题3】(5分) 对系统检索功能及预订功能执行负载压力测试,测试结果如表1-2所示。请指出服务器资源利用情况cpu占用率的测试结果是否满足性能需求并说明原因。 表1-2 系统测试结果 【问题4】(6分) 根据【问题2】和【问题3】的测试结果,试分析该系统的可能瓶颈。 参考答案:

问题1、该酒店预订系统在生产环境下承受的主要负载类型: (1)检索功能、预订功能并发用户的操作是属于并发执行负载; (2)连续运行72小时是属于疲劳强度负载; (3)大量“稿件查询”操作是属于大数据量负载。 【问题4】(5分) 对系统检索功能执行负载压力测试,响应时间和交易执行成功率的测试结果不能满足性能需求。 因为: 1、系统检索功能执行并发用户数为900时,其响应时间为3.7s与检索响应时间在3s以内不能满足性能需求,交易执行成功率为100%满足性能需求。 2、系统检索功能执行并发用户数为1000时,其响应时间为6.6s与检索响应时间在3s以内不能满足性能需求,交易执行成功率为98%不能满足性能100%需求。 【问题4】(6分) 根据【问题2】和【问题3】的测试结果,该系统的存在瓶颈。 服务器资源利用情况: 1在执行检索功能测试时并发用户为900、1000时响应时间超过3s; 2在检索功能并发用户为900,预订功能并发用户数为100时,CPU占用率(%)(平均值)达到87.3超过85%; 3在检索功能并发用户为1000,预订功能并发用户数为120时,CPU占用率(%)(平均值)达到92.6超过85%; 可能的瓶颈如下: (1)服务器CPU 性能不足; (2)数据库设计不足或者优化不够; (3)检索功能预订功能应用软件设计不足或没有优化; (4)网络带宽不足。 试题二(共15分)白盒测试 阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。 Struct_ProtobufCIntRange{ Intstart_value; Unsigned orig_index; }; typedefstruct_ProtobufCIntRangeProtobufCIntRange; intint_range_lookup(unsigned n_ranges,constProtobufCIntRange*ranges,int value){

iOS面试题库(四)有关GCD——北风网分享

北风网iOS面试题库(四) 写在前面:“分享”看似在输出,但实际上是获得更多。用我们北风网的口号就是“不懂得分享的人,不会很快乐;不懂得分享的教育,不是好教育”。所以,我们北风网会不定期给大家分享一些干货,所有的内容仅供学习之用,也希望大家能将“分享的精神”传递下去。 一、CGD的底层实现 (1)iOS和OS X的核心是XNU内核, GCD是基于XUN内核实现的 (2)GCD的API全部在libdispatch库中 (3)GCD的底层实现主要有Dispatch Queue 和Dispatch Source (4)Dispatch Queue——管理block操作 (5)Dispatch Source——处理事件 二、Notification是同步还是异步?Kvo 是同步还是异步? 包括代理,这些都是同步的;监听和回调都是在同一个线程中执行。 三、Objective C中的selector是什么? 可以理解@selector() 就是取类方法的编号,他的行为基本可以等同C语言中的函数指针,只不过C语言中,可以把函数名之间赋给一个函数指针,而Objective-C的类不能之间应用函数指针,这样只能做一个@selector语法来取。 它的结果是一个SEL类型,这个类型的本质是累方法的编号(函数地址).方法以selector为索引.selector的数据类型是SEL定义成char*,我们可以把它想象成int .每个方法的名字对应

一个唯一的值。 四、iOS中哪些操作是属于私有api的范畴? 私有API是指存放在PrivateFrameworks框架中的API 是苹果明确不能使用的API 也可以说,一般在官方文档和头文件中看不到,但是实际存在于框架中的API 就是私有API,具体在提交应用的时候回自动检测。 私有API的存在很大一部分是为了保护隐私和系统安全,进制开发者使用这些功能。但是由于Objective-C的动态特性,使得实际上不可能存在真正意义的阻止调用这些API。 五、frame和bounds有什么不同? frame的位置是相对父空间的左上角来说的,参照的是父类的坐标系,指的是空间在父控件内的位置和大小。 bounds的位置是相对控件自身的左上角来说的,参照的是自身坐标系,指的是自己本身的大小。 六、NSTimer和GCD的定时器有什么区别? (1)NSTimer 可以调用invalidate 进行撤销,创建和撤销必须在同一线程。 NSTimer需要将定时器添加到当前的runloop中. 它的时间单位是秒。 (2)GCD一旦执行就不能撤销。 CGD中的定时器不受runloop模式的影响。 时间单位是纳秒。

dsp试题及答案集(附复习资料)解析

最新DSP考试试题集合外加复习资料(后) 一、填空(每空1分,共30分) 1.程序计数器的值可以通过复位操作、顺序执行指令、分支转移, 累加器转移,块重复,子程序调用,从累加器调用子程序,中断等操作改变。 2.’C54x DSP芯片采用了6级流水线的工作方式,即一条指令分为预取指、 取指、译码、寻址、读数和执行6个阶段。 3.解决MMR写操作的流水线冲突时,一般可用采用推荐指令和插入空操作 指令的方法。 4.TI公司的定点DSP产品主要有 TMS320C2000 系列、TMS320C5000系列和 TMS320C6000 系列。 5.’C54x DSP中传送执行指令所需的地址需要用到 PAB 、CAB、DAB和 EAB 4条地址总线。 6.在’C54x DSP寻址和指令系统中,Xmem和Ymem表示 16位双寻址操作数, Dmad为16位立即数,表示数据存储器地址,Pmad为16位立即数,表示程序存储器地址。 7.DSP的内部存储器类型可分为随机存取存储器(RAM)和只读存储器(ROM)。 其中RAM又可以分为两种类型:单寻址RAM(SARAM)和双寻址RAM(DARAM)。8. 9.’C54x DSP的内部总存储空间为192K字,分成3个可选择的存储空间:64K 字的程序存储空间、64K字的数据存储空间和64K字的 I/O空间。 10.从功能结构上,’C54X DSP的CPU可以划分成运算部件和控制部件两大 部分。 11.’C54x DSP的寻址方式有七种,分别为立即寻址、绝对寻址、累加器寻址、

直接寻址、间接寻址、存储器映象寄存器寻址、堆栈寻址。 12.’C54x DSP定时器由3个16位存储器映射寄存器组成:定时器寄存器(TIM)、 定时器周期寄存器(PRD)和定时器控制寄存器(TCR)。 13. 主机接口(HPI,Host Port Interface)是TMS320C54x 系列定点芯片内 部具有的一种接口部件,主要用于DSP与其他总线或CPU进行通信。 14.’C54x DSP的指令系统有助记符指令和代数指令两种形式。 15.COFF目标文件中.text段通常包含可执行代码,.data段通常包含己初 始化的数据,.bss段中通常为未初始化的数据保留空间。 16.DSP芯片的开发工具可以分为代码生成工具和代码调试工具两类。 17、DSP芯片按照其用途分类,可以分为通用型和专用型两种。 18,在堆栈操作中,PC当前地址为4020h,SP当前地址为0033h,运行PSHM AR2后,PC= 4021h , SP= 0032h 。(PSHM AR2为单字指令) 19、TMS320C54xDSP芯片四种串行口类型是指 SP 、 BSP 、McBSP和TDMcBSP。 20、请简要说明TMS320C5402VCDSP以下引脚的功能: RS:复位引用脚,IOSTRB: I ef所定义的符号,是在当前模块中 使用,而在别的模块中定义的符号; B、.ref 所定义的符号,是当前模块中定义,并可在别的模块中使用的符号; C、.sect命令定义的段是未初始化的段; D、.usect命令定义的段是未初始化的段。 8、在采用双操作数的间接寻址方式时,要使用到一些辅助寄存器,在此种寻址方式下,下 面的那些辅助寄存器如果使用到了是非法的( D ) A、AR2 B、AR4 C、AR5 D、AR6

iOS开发高级程序员面试题-答案

一、判断题(每题2分,共20分) 1、UITableView能够绑定多个数据源。(错) 2、一个UIViewController可以管理多个UITableView。(对) 3、Object-c的类可以多重继承。(错) 4、objective-c类里面的方法只有两种, 静态方法和实例方法。(对) 5、NSFileManager和NSWorkspace在使用时都是基于进程进行单件对象的实例化。(对) 6、用类别增加方法时,不能与原来类中的方法产生名称冲突。(错) 7、frame指的是该view在本身坐标系统中的位置和大小。(错) 8、method是一个方法的名字,selector是一个组合体。(错) 9、ARC是编译特性,不是运行时特性,在编译时,编译器会自动加上释放代码。(对) 10、从iOS4之后,Safari支持全屏浏览,Siri支持普通话。(对) 二、填空题(每空2分,共20分) 1、iOS是使用Objective-C语言编写的,使用该语言开发的Cocoa是一款功能强大的用户界面工具包,也是iOS的核心。 2、数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。链表恰好相反,其中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系到一起。 3、发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作。而发送异步请求不会阻塞主线程,会建立一个新的线程来操作,之后程序可以继续运行。 页脚内容1

4、autorelease只是把Object放入了当前的autorelease pool中,当它被释放时,其中的所有Object都会被调用Release。 5、作为Objective-C导入头文件的关键字,#import<>用来包含系统的头文件,#import””用来包含用户头文件。 三、简述题(每题4分,共20分) 1、delegate和notification有什么区别,什么情况下使用? 答:delegate:消息的发送者(sender)告知接收者(receiver)某个事件将要发生,delegate同意然后发送者响应事件,delegate机制使得接收者可以改变发送者的行为。通常发送者和接收者的关系是直接的一对多的关系。 notification:消息的发送者告知接收者事件已经发生或者将要发生,仅此而已,接收者并不能反过来影响发送者的行为。通常发送者和接收者的关系是间接的多对多关系。 2、Object-C中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?如果想延时执行代码、方法又是什么? 答:线程创建有三种方法:使用NSThread创建、使用GCD的dispatch、使用子类化的NSOperation,然后将其加入NSOperationQueue。 在主线程执行代码,方法是performSelectorOnMainThread。 如果想延时执行代码可以用performSelector:onThread:withObject:waitUntilDone。 3、iOS有哪些数据持久化方式? 答:四种:属性列表、对象归档、SQLite3和Core Data。 页脚内容2

史上最全的iOS面试题及答案

史上最全的iOS面试题及答案 以下是为大家整理的史上最全的ios面试题及答案的相关范文,本文关键词为史上,最全,ios,试题,答案,,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在教师教学中查看更多范文。 精品文档 . 史上最全的ios面试题及答案?1.写一个nsstring类的实现 +(id)initwithcstring:(c*****tchar*)nullTerminatedcstring encoding:(nsstringencoding)encoding; +(id)stringwithcstring:(c*****tchar*)nullTerminatedcstring

encoding:(nsstringencoding)encoding { nsstring*obj; obj=[selfallocwithZone:nsDefaultmallocZone()];obj=[objinitwithcstring:n ullTerminatedcstringencoding:encoding]; returnAuToReLeAse(obj); } 2static关键字的作用: (1)函数体内static变量的作用范围为该函数体,不同于auto 变量,该变量的内存只被分配一次, 因此其值在下次调用时仍维持上次的值;

(2)在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问; (3)在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明 它的模块内; (4)在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝; (5)在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成员变量。 3线程与进程的区别和联系? 精品文档 进程和线程都是由操作系统所体会的程序运行的基本单元,系统

iOS 面试题

iOS 面试题 1、在一个对象的方法里面:https://www.doczj.com/doc/4714353776.html,= @“object”;和name =@”object” 有什么不同吗? 答:https://www.doczj.com/doc/4714353776.html, =”object”:会调用对象的setName()方法; name = “object”:会直接把object赋值给当前对象的name属性。 2、什么时候用delegate,什么时候用Notification? delegate 和notification 的区别 答: delegate针对one-to-one关系,用于sender接受到reciever的某个功能反馈值。 notification针对one-to-one/many/none,reciver,用于通知多个object某个事件。 区别 1). 二者都用于传递消息,不同之处主要在于一个是一对一的,另一个是一对多的。 2). notification通过维护一个array,实现一对多消息的转发。 3). delegate需要两者之间必须建立联系,不然没法调用代理的方法;notification不需要两者之间有联系。 3.浅拷贝和深拷贝的区别? 浅拷贝:只复制指向对象的指针,而不复制引用对象本身。 深拷贝:复制引用对象本身。内存中存在了两份独立对象本身,当修改A时,A_copy不变。 4.进程和线程的区别?同步异步的区别? 进程:是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.

线程:是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 同步:阻塞当前线程操作,不能开辟线程。 异步:不阻碍线程继续操作,可以开辟线程来执行任务。 编程题 30张不同的图片(image0-29)随机选出5张并且不得重复

C++试题(附答案)

一、选择题 1.在下列有关析构函数的描述中,错误的是(B) A.一个类中只能定义一个析构函数 B.析构函数名与类名完全相同 C.析构函数不能指定返回类型 D.析构函数不能带有参数 2.面向对象的软件工程不包括以下哪个部分(D) A.面向对象程序设计 B.面向对象编程C.面向对象维护 D.面向对象封装3.假设定义了函数模版: Template T max(Tx,Ty) {return (x>y)? x:y;} 并定义了:int i;char c;那么下列错误的调用该模版的事(C)A.max (i,i) B.max(c,c) C.max(int(c),i) D.max(c,i) 4.模版的主要作用是为了(C) A.提高代码的运行效率 B.实现多态性C.提高代码的重要性 D.加强类的封装性5.#include #include using namespace std; {

double x=111.222222222222222; cout< { public: void fun (){cout<<”Base::fun”<

信息安全试题库及参考答案

一、判断题 1. 在互联网上第一个注册的域名是“https://www.doczj.com/doc/4714353776.html,”。 正确与否均得不了分 2. 当今的信息技术 主要是指计算机和网络通信技术。 正确与否均得不了分 3. 商业软件是指那些需要付费才能使用的软件。 正确与否均得不了分 4. 移动产业链发展趋势是有“流量”经济向“服务”经济转变。 正确与否均得不了分 5. 操作系统是用户与计算机的接口。 正确与否均得不了分 6. 人是安全管理的核心要素 安全管理以提高人的要素为基础 以确保人的安全为终极目标。正确 7. 云计算数据中心规模巨大、能耗惊人 是与当前“节能降耗”的发展目标背道而驰的。错误 8. 伊朗核电站的震网攻击采用的是APT攻击手法。正确 9. 分布式反射拒绝服务攻击就是控制肉鸡发送大量合法请求 导致服务器和网络阻塞。正确 10. 物理隔离的网络是绝对安全的。错误11. 网络好友传输一个图片给你 图片不会感染病毒 可以任意打开。错误 12. 如何确保标签物拥有者的个人隐私不受侵犯成为射频识别技术以至物联网推广的关键问题。正确 13. 在计算机指令中 规定其所执行操作功能的部分称之为操作码。错误 14. 高级程序设计语言的编译系统属于应用软件。错误 15. 物联网一方面可以提高经济效益大大节约成本 另一方面可以为全球经济的复苏提供技术动力。正确 16. 微型计算机的内存储器是指安放在计算机内的各种存储设备。错误 17. 微软的Office 365是云计算服务模型中软件即服务的代表。正确 18. 基于新一代信息技术的节能减排信息化总体架构可以分为四层 分别是基础设施层、信息集成层、应用层和展示层。正确 19. 存贮一个英文字母占8个字节。错误 20. 能够互动、通信的产品都可以看作是物联网应用。错误 21. 目前智能手机操作系统市场占有份额最多的是苹果的ios。错误 22. 诺基亚从没生产国智能手机。错误 23. 现在人们获取媒体的主要方式和手段还是看电视。错误 24. 移动通信最先应用在船舶通信中。正确 25. 企业信息化就是企业内部业务管理的信息化。错误 26. 冯?诺依曼结构的计算机是将计算机划分为运算器、控制器、存储器、输入设备和输出设备等五大部件。错误 27. 计算机发展到第五代出现了个人计算机。错误 28. 微信是中国移动公司开发的。错误 29. 二维码中可以包含很多信息 可以存放恶意程序的链接。正确 30. 绿色电脑是指节能电脑。正确 31. 网络是云计算应用的基础 我国的主流网络速度已经超越了韩国、日本等国家 处于国际领先位置。错误 32. 物联网研究的目的就是把所有物体连接起来。错误 33. “金关”工程又称为海关联网工程 其目标是推广电子数据交换技术 以实现货物通关自动化、国际贸易无纸化。正确

IOS笔试题题目

1. delegate中的property使用以下哪个属性() A. assign B. retain C. copy D. Strong 2. 关于Objective-C中属性的说明,以下错误的是() A.readwrite是可读可写特性,需要生成getter方法和setter方法 B.readonly是只读特性,只有getter方法,没有setter方法 C.assign是赋值属性,setter方法将传入参数赋值给实例变量 D.retain表示持有特性,copy属性表示拷贝属性,都会建立一个相同的对象 3. 下面对category描述不正确的是() A.category可以添加新的方法 B.category可以删除修改之前的方法 C.将类的实现分散到多个不同文件或多个不同框架中 D.创建对私有方法的前向引用 4. NSRunLoop的以下描述错误的是() A.Runloop并不是由系统自动控制的 B.有3类对象可以被run loop监控:sources,timers,observers C.线程是默认启动run loop的 D.NSTimer可手动添加到新建的NSRunLoop中 5. 单例类NSNotificationCenter提供信息广播通知,它采用的是观察者模式的通知机制。() A. 对 B. 错 6. 判断:从通讯录数据库查询联系人数据,可通过ABAddressBookCopyArrayOfAllPeople和ABAddressBookCopyPeopleWithName函数获得。() A. 对 B. 错 7. NSURLConnection类的同步请求方法是() A.+ sendSynchronousRequest:returningResponse:error: B.–initWithRequest:delegate: C.–initWithRequest:delegate:startImmediately: 8. genstrings命名的基本语法:genstrings [-a] [-q] [-o] sourcefile() A.对 B.错 9. 面哪些属于UITableViewDelegate协议的方法() A.tableView:cellForRowAtIndexPath: B.tableView:numberOfRowsInSection: C.tableView:didSelectRowAtIndexPath: D.numberOfSectionsInTableView: 10. 平铺导航模式是在内容组织上没有层次关系,展示的内容都放置在一个主屏幕上,采用分屏或分页控制器进行导航,可以左右或者上下滑动屏幕查看内容()

iOS 面试题汇总

超全!iOS ?面试题汇总 作者:Job_Yang 之前看了很多?面试题,感觉要不是不够就是过于冗余,于是我将??网上的?一些?面试题进?行了删减和重排,现在分享给?大家。(题??目来源于??网络,侵删) 1. Object-c的类可以多重继承么?可以实现多个接?口么?Category是什么?重写?一个类的?方式?用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承;可以实现多个接?口,通过实现多个接?口可以完成 C++的多重继承;Category是类别,?一般情况?用分类好,?用Category去重写类的?方法,仅对本Category有效,不会影响到其他类与原有类的关系。 2. #import 跟#include ?又什么区别,@class呢, #import<> 跟 #import””?又什么区别? 答:#import是Objective-C导?入头?文件的关键字,#include是C/C++导?入头?文件的关键字,使?用#import头?文件会?自动只导?入?一次,不会重复导?入,相当于#include和#pragma once;@class告诉编译器某个类的声明,当执?行时,才去查看类的实现?文件,可以解决头?文件的相互包含;#import<>?用来包含系统的头?文件,#import””?用来包含?用户头?文件。 3. 属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作?用,在那种情况下?用?

1). readwrite 是可读可写特性;需要?生成getter ?方法和setter ?方法时 2). readonly 是只读特性 只会?生成getter ?方法 不会?生成setter ?方法 ;不希望属性在类外改变 3). assign 是赋值特性,setter ?方法将传?入参数赋值给实例变量;仅设置变量时; 4). retain 表?示持有特性,setter ?方法将传?入参数先保留,再赋值,传?入参数的retaincount 会+1; 5). copy 表?示赋值特性,setter ?方法将传?入对象复制?一份;需要完全?一份新的变量时。 6).nonatomic ?非原?子操作,决定编译器?生成的setter getter 是否是原?子操作,atomic 表?示多线程安全,?一般使?用nonatomic 4.写?一个setter ?方法?用于完成@property (nonatomic,retain)NSString *name,写?一个setter ?方法?用于完成@property(nonatomic ,copy)NSString *name 答: 1 2 3 4 5 6 7 8 9 10 11 12- (void) setName:(NSString*) str {[str retain];[name release];name = str;}- (void)setName:(NSString *)str {id t = [str copy];[name release];name = t;} 5.对于语句NSString*obj = [[NSData alloc] init]; obj 在编译时和运?行时分别时什么类型的对象? 答: 编译时是NSString 的类型;运?行时是NSData 类型的对象 6.常?见的object-c 的数据类型有那些, 和C 的基本数据类型有什么区别?如:NSInteger

相关主题
相关文档 最新文档