人人范文网 范文大全

OC面试题(优秀)

发布时间:2020-03-01 17:37:23 来源:范文大全 收藏本文 下载本文 手机版

1、objective-c中是所有对象间的交互是如何实现的?(深圳皆凯科技有限公司笔试题) 通过代理去进行通讯,或者通过观察者消息模式,Blocks ,appdelegate

2、如何将产品进行多语言发布,开发?

Xcode对多语言支持比较好,除了 h m文件之外所有其它东西都可以多语言

3、objective-c中是如何实现线程同步的? Mutexlock,NSCondtion lock,消息传送

4、编写函数_memmove说明如下:实现C语言库函数memmove的功能:将一块缓冲区中的数据移动到另一块缓冲区中。可能有重复。 // 5、什么叫数据结构?(面试顺风快递iphone开发) 计算机 = 编程+数据结构

6、编程中,保存数据有哪几种方式?数组、自定义类、文件操作、数据库如:SQLite 文件 plist NSUserDefaults sqlite 7、Sizeof与strlen的区别和联系?

8、什么是抽象类?抽象类有什么作用?能实例化吗? NSOperation 没有完全实现的类叫抽象类, C++,java 抽象类不能实例化, 不能 NSOperation *a =[[NSOperation alloc] init]; 9、用Objective-C写冒泡法. // 10、你对@interface和@property的理解? @interface申明一个类

@property就是申明2个函数,getter setter,编译器会自动产生2个函数 retain, aign是什么意思

11、Iphone开发中控制类有什么作用?

Controller, UIViewController, UINav, UITabBarController UIImagePickerController, UITableViewController UIView和UIViewController的区别 container 12、线程中有哪些函数?写出来。 [NSThread detachNewXXXXX]; 13、有没有写过自定义的控件?

自己定义控件有2类,1类比较多的就是类似 RatingView UIJewels : UIButton { int x, y; int type; UIImage *image; } UIImageView和UIImage UILabel和NSString 2.用CG CoreGraphics drawRect: -------- |-------| 每个UIView都有一个drawRect: 14、调用一个类的静态方法需不需要release?

静态方法就是类方法,不需要,类的方法

对象放在autorelease中

15、do-while 与 while-do的区别?

16、写出几个死循环?while(1),for(;;),

用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL

1。aign和retain,copy的区别 aign就是和普通语言的赋值一样

retain 在一个对象中保存该对象需要拥有的对象 对该对象进行应用计数+1 @property (retain) 为了写程序方便 copy主要是赋值

一般 代理的申明都是aign 为什么 原因有2个,

1 根本就没有必要把代理的计数器+1 2.主要是为了避免引用技术嵌套,递归 2。如何持久保存数据

NSUserDefaults, Plist, SQLite3, file 3。网络方面得 比如如何检测联网 http xml等 ASIHTTPRequest Reacheable.[hm] 原理是ifconfig 是不是有ip地址 Reachability 来判断是否有网络3G Wifi 4。类之间得继承关系 比如UIview得父类是哪一个等等? UIResponder,处理触摸,

touchBegin, touchEnd, nextResponder 5。异常处理

都是自己判断 错误信息

longjmp char *p = malloc(100); if (p == NULL) { }

在同一个类A中,有方法a和方法b,方法b如何调用方法a? [self a]; 有A、B两个类,B类继承于A类,都实现了方法xx。创建B类实例b,如何让b调用A类? [super a]; const和Volatile分别代表什么意思? Volatile表示每次都从内存取数据 类型id代表什么意思?

面向对象包含哪些元素? 继承和分类的区别? Catogory Catogory实现起来麻烦一些,但是使用方便 NSSet类的作用是什么? 集合

编写一个完整程序,在控制台打印字符串“HelloWorld!” 用递归实现计算n的阶乘。(用objective-c语法实现)

obj-c有多重继承么?不是的话有什么替代方法? cocoa 中所有的类都是NSObject 的子类,多继承在这里是用protocol 委托代理来实现的。你不用去考虑繁琐的多继承,虚基类的概念。多态特性在 obj-c 中通过委托来实现。

线程与进程的区别和联系?

进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。

程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

自动释放池是什么,如何工作?

当您向一个对象发送一个autorelease消息时,Cocoa就会将该对象的一个引用放入到最新的自动释放池。它仍然是个正当的对象,因此自动释放池定义的作用域内的其它对象可以向它发送消息。当程序执行到作用域结束的位置时,自动释放池就会被释放,池中的所有对象也就被释放。

1.ojc-c 是通过一种\"referring counting\"(引用计数)的方式来管理内存的, 对象在开始分配内存(alloc)的时候引用计数为一,以后每当碰到有copy,retain的时候引用计数都会加一, 每当碰到release和autorelease的时候引用计数就会减一,如果此对象的计数变为了0, 就会被系统销毁.2.NSAutoreleasePool 就是用来做引用计数的管理工作的,这个东西一般不用你管的.3.autorelease和release没什么区别,只是引用计数减一的时机不同而已,autorelease会在对象的使用真正结束的时候才做引用计数减一。

什么是KVC和KVO?答:KVC(Key-Value-Coding)内部的实现:一个对象在调用setValue的时候,(1)首先根据方法名找到运行方法的时候所需要的环境参数。(2)他会从自己isa指针结合环境参数,找到具体的方法实现的接口。(3)再直接查找得来的具体的方法实现。KVO(Key-Value-Observing):当观察者为一个对象的属性进行了注册,被观察对象的isa指针被修改的时候,isa指针就会指向一个中间类,而不是真实的类。所以isa指针其实不需要指向实例对象真实的类。所以我们的程序最好不要依赖于isa指针。在调用类的方法的时候,最好要明确对象实例的类名。

kvc 就是一种通过字符串去间接操作对象属性的机制。 iphone中,自定义协议?

Protocol , 看代理 viewController 协议在oc中主要用在代理中 绑定的概念?

代理的概念?对它怎么理解? 为了模块之间的松耦合 网络编程中协议的概念。 NetworkDataDelegate; 3个函数理解 didReceive,

判断是否实现某个方法,是某个类

respondsToSelector ,performSelector,conformstoProrocol,isKindofCla,isMemberofCla 网络库 优点 缺点

ASIHTTPRequest 老牌、功能强大、文档丰富 停止更新、新特性少、厚重

AFNetWorking github上比较火的项目、有稳定的两个主要负责人、能支持比较新的特性、一直有更新 文档数目一般、有些功能貌似要自己写

MKNetworkKit 支持ARC、号称要有 ASIHTTPRequest的功能,AFNetWorking的轻便 文档数目最少、只有作者一个主要负责人

1 http 协议,get, post区别

2.如何判断一个 http 包结束

3 http 协议如何实现断点下载的

使用http Range字段

可以把当前传输了多少存在文件中, 一般在http请求投有content-length是表示后面数据有多长 oc中有 connectionDidFinishLoading表示接受完成 当然也可以根据接收多少了 get是简单的http协议

post是从客户端提交复杂的参数,包括文件

1.写一个NSString类的实现

+ (id)initWithCString:(const char *)nullTerminatedCString encoding:(NSStringEncoding)encoding;

+ (id)initWithCString:(const char *)nullTerminatedCString encoding:(NSStringEncoding)encoding{ NSString *obj; obj = [self allocWithZone: NSDefaultMallocZone()]; obj = [obj initWIthCString: nullTerminatedCString encoding: encoding]; return AUTORELEASE(obj); }

2.写一个委托Delegate的interface 答:

@protocol MyDelegate; @cla MyCla;

@interface MyCla: NSObject { id delegate; } // 委托方法

@protocol MyDelegate - (void)didJobs:(NSArray *)args; @end

3.obj-c有私有方法么?私有变量呢

答:在Objective-C中没有私有方法,只有静态方法和实例方法。但是可以用@private修饰私有变量。

用 .m文件中使用catogory来实现私有方法。

4.obj-c的优缺点 objc优点:

1) Cateogies 2) Posing 3) 动态识别

4) 指标计算

5)弹性讯息传递

6) 不是一个过度复杂的 C 衍生语言

7) Objective-C 与 C++ 可混合编程

缺点: 1) 不支援命名空间

2) 不支持运算符重载

3) 不支持多重继承

4) 使用动态运行时类型,所有的方法都是函数调用,所以很多编译时优化方法都用不到。(如内联函数等),性能低劣。

OC没有多重继承,Java也没有 C++才有 OC使用协议来实现多重继承

OC 冒泡排序

- (NSArray *)bubble_sort:(NSArray *)array {

int tmp; int count = [array count]; //申请临时数组,以存放本来在oc对象数组里的内容 int *tmpArray = (int *)malloc(sizeof(int)*count); if (tmpArray == NULL) {

}

//把oc对象数组里的内容暂时存放到临时数组里 for (int i = 0; i

}

//冒泡排序过程

for (int i = 0; i

}

//最后把把排序后的结果回写到oc对象数组里。 NSMutableArray *results = [NSMutableArray array]; for (int i = 0; i

//释放临时数组空间 free(tmpArray);

//返回结果

return [NSArray arrayWithArray:results]; [results addObject:[NSNumber numberWithInt:tmpArray[i]]]; for (int j = 0; j

} if (tmpArray[j] > tmpArray[j+1]) {

} tmp = tmpArray[j]; tmpArray[j] = tmpArray[j+1]; tmpArray[j+1] = tmp; @dynamic 意思是由开发人员提供相应的代码:对于只读属性需要提供 setter,对于读写属性需要提供 setter 和 getter。@synthesize 意思是,除非开发人员已经做了,否则由编译器生成相应的代码,以满足属性声明。

OC中frame与bounds有什么不同

Frame指的是:该view在父view坐标系统中的位置和大小(参照点是父类的坐标系统) Bounds指的是:该view在本身坐标系统中的位置和大小(参照点是本身的坐标系统)

作文oc

评语oc

借条 oc

工作总结.oc

医院面试题收集(优秀)

各银行面试题(优秀)

销售经理面试题(优秀)

幼教工作思路oc

OC 英文作文

一会三制oc

OC面试题(优秀)
《OC面试题(优秀).doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题 面试题oc 面试题
点击下载本文文档