设为首页 加入收藏

TOP

iOS面试题(五)
2019-09-03 02:40:13 】 浏览:163
Tags:iOS 试题
ew,viewDidLoad, viewDidUnload 分别是在什么时候调用的?在自定义ViewController的时候这几个函数里面应该做什么工作?

viewDidLoad在view 从nib文件初始化时调用,loadView在controller的view为nil时调用。此方法在编程实现view时调用,view 控制器默认会注册memory warning notification,当view controller的任何view 没有用的时候,viewDidUnload会被调用,在这里实现将retain 的view release,如果是retain的IBOutlet view 属性则不要在这里release,IBOutlet会负责release 。

69. UITableViewController 中,创建UITableViewCell时,initWithSytle:resuseIdentifier中,reuseIdentifier有什么用?简述UITableViewCell的复用原理.

复用队列的元素增加:只有在cell被滑动出界面的时候,此cell才会被加入到复用队列中。每次在创建cell的时候,程序会首先通过调用 dequeueReusableCellWithIdentifier:cellType方法,到复用队列中去寻找标示符为“cellType”的 cell,如果找不到,返回nil,然后程序去通过调用[[[UITableViewCell alloc]initWithStyle:style reuseIdentifier:cellType] autorelease]来创建标示符为“cellType”的cell。

70. UIView 和CALayer 有什么区别?

两者最大的区别是,图层不会直接渲染到屏幕上。

71.iOS上的多线程

GCD是(Grand Central Dispatch)的缩写 ,从系统级别提供的一个易用地多线程类库,具有运行时的特点,能充分利用多核心硬件。GCD的API接口为C语言的函数,函数参数中多数有Block,为我们提供强大的“接口”,

 

NSOperation与Queue

NSOperation是一个抽象类,它封装了线程的细节实现,我们可以通过子类化该对象,加上NSQueue来同面向对象的思维,管理多线程程序。

 

NSThread

NSThread是一个控制线程执行的对象,它不如NSOperation抽象,通过它我们可以方便的得到一个线程,并控制它。但NSThread的线程之间的并发控制,是需要我们自己来控制的,可以通过NSCondition实现。

在项目什么时候选择使用GCD,什么时候选择NSOperation?

项目中使用NSOperation的优点是NSOperation是对线程的高度抽象,在项目中使用它,会使项目的程序结构更好,子类化NSOperation的设计思路,是具有面向对象的优点(复用、封装),使得实现是多线程支持,而接口简单,建议在复杂项目中使用。

项目中使用GCD的优点是GCD本身非常简单、易用,对于不复杂的多线程操作,会节省代码量,而Block参数的使用,会是代码更为易读,建议在简单项目中使用。

 

72.Objective-C如何对内存管理的,说说你的看法和解决方法?

Objective-C的内存管理主要有三种方式ARC(自动内存计数)、手动内存计数、内存池。

73.如何对iOS设备进行性能测试?

Profile-> Instruments ->Time Profiler

74.What are commonly used NSObject class methods?

类NSObject的那些方法经常被使用?

NSObject是Objetive-C的基类,其由NSObject类及一系列协议构成。

其中类方法alloc、class、 description 对象方法init、dealloc、– performSelector:withObject:afterDelay:等经常被使用 

75..What is convenience constructor?

什么是简便构造方法?

简便构造方法一般由CocoaTouch框架提供,如NSNumber的 + numberWithBool:  + numberWithChar:  + numberWithDouble:  + numberWithFloat:  + numberWithInt:

Foundation下大部分类均有简便构造方法,我们可以通过简便构造方法,获得系统给我们创建好的对象,并且不需要手动释放。

76.How can you store data in iPhone applications?

在iPhone应用中如何保存数据?

有以下几种保存机制:

1.通过web服务,保存在服务器上

2.通过NSCoder固化机制,将对象保存在文件中

3.通过SQlite或CoreData保存在文件数据库中

77.What is coredata?

什么是coredata?

coredata是苹果提供一套数据保存框架,其基于SQlite

78.What is NSManagedObject model?

什么是NSManagedObject模型?

NSManagedObject是NSObject的子类 ,也是coredata的重要组成部分,它是一个通用的类,实现了core data 模型层所需的基本功能,用户可通过子类化NSManagedObject,建立自己的数据模型。

 

79.What is NSManagedobjectContext?

什么是NSManagedobjectContext?

NSManagedobjectContext对象负责应用和数据库之间的交互。

80.What is predicate?什么是谓词?

谓词是通过NSPredicate,是通过给定的逻辑条件作为约束条件,完成对数据的筛选。

    predicate = [NSPredicate predicateWithFormat:@"customerID == %d",n];

    a = [customers filteredArrayUsingPredicate:predicate];

81.做过的项目是否涉及网络访问功能,使用什么对象完成网络功能?

ASIHTTPRequest与NSURLConnection

82.简单介绍下NSURLConnection类及+ sendSynchronousRequest:returningResponse:error:– initWithRequest:delegate:两个方法的区别?

NSURLConnection主要用于网络访问,其中+ sendSynchronousRequest:returningResponse:error:是同步访问数据,即当前线程会阻塞

首页 上一页 2 3 4 5 6 下一页 尾页 5/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇git找回丢失的代码 下一篇iOS Push详述,了解一下?

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目