iphone开发企业笔试真题

请各位iphone开发工程师,积极参与解答笔试题,帮助一些初学者通过面试难关。最近我工作非常忙,以后我会陆续将标准答案写出来,供大家参考学习!
百分之百iphone开发企业笔试真题 
1、objective-c中是所有对象间的交互是如何实现的?(深圳皆凯科技有限公司笔试题) 
2、如何将产品进行多语言发布? 
3、objective-c中是如何实现线程同步的? 
编写函数_memmove说明如下:实现C语言库函数memmove的功能:将一块缓冲区中的数据移动到另一块缓冲区中。可能有重复。
 
5、什么叫数据结构?(面试顺风快递iphone开发) 
6、编程中,保存数据有哪几种方式? 

7、Sizeofstrlen的区别和联系? 


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中,自定义协议?
绑定的概念?
代理的概念?对它怎么理解?
网络编程中协议的概念

苹果上架流程?上详细答案。帮助一下初学者。谢谢!



在做iPhone开发过程中,收集了一些常见到问题,可以用作面试题目,供大家参考,如果这些问题对你来说完全没有难度,可以发一份简历到 [email protected]

  1. ObjC中,与alloc语义相反的方法是dealloc还是release?与retain语义相反的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?
  2. 在一个对象的方法里面:
    self.name = “object”;

    name =”object”
    有什么不同吗?
  3. 这段代码有什么问题吗:
    @implementation Person
    - (void)setAge:(int)newAge {
    self.age = newAge;
    }
    @end
  4. 什么是retain count?
  5. 以下每行代码执行后,person对象的retain count分别是多少
    Person *person = [[Person alloc] init];
    [person retain];
    [person release];
    [person release];
  6. 为什么很多内置类如UITableViewController的delegate属性都是assign而不是retain的?
  7. 定义属性时,什么情况使用copy,assign,和retain
  8. autorelease的对象是在什么时候被release的?
  9. 这段代码有什么问题,如何修改
    for (int i = 0; i < someLargeNumber; i++)
    {
    NSString *string = @”Abc”;
    string = [string lowercaseString];
    string = [string stringByAppendingString:@"xyz"];
    NSLog(@“%@”, string);
    }
  10. autorelease和垃圾回收机制(gc)有什么关系?
  11. IPhone OS有没有垃圾回收(gc)?
  12. 什么是Notification?
  13. 什么时候用delegate,什么时候用Notification?
  14. 什么是KVC和KVO?
  15. Notification和KVO有什么不同?
  16. KVO在ObjC中是怎么实现的?
  17. ViewController 的 loadView, viewDidLoad, viewDidUnload 分别是在什么时候调用的?在自定义ViewController的时候这几个函数里面应该做什么工作?
  18. ViewController 的 didReceiveMemoryWarning 是在什么时候被调用的?默认的操作是什么?
1Objective-C内部的实现
2CALayer和View的关系
3 http协议,tcp/ip
4 UITableView的那些元素是可以自定义的?
5 c语言的,定义变量,比如int,在什么情况下,其最大值是不同的
6 比较32位平台和64位平台不同
7 iphone app为什么会被打回来,如何避免??
8 为啥离开团队?

 

1.针对第一个问题,可以看看下面的教程

Object c研究的比较深入的教程

http://www.cnblogs.com/yaski/ 

 第6章写的尤其好


 KVO/KVC 实现机理分析

http://archive.cnblogs.com/a/1886332/ 

 

2.CALayer和View的关系
  

一个UIView包含CALayer树,CALayer是一个数据模型,包含了一些用于显示的对象,但本身不用于显示。 

CALayer相当于photoshop的一个层,很多动画可以通过设置CALayer来实现。据说有人用CALayer显示图片来播放视频。

Core animation应该是用CAlayer来实现各种动画。

这里有篇博文,介绍的还可以http://www.cnblogs.com/uyoug321/archive/2011/01/22.html 




你可能感兴趣的:(String,object,面试,iPhone,animation,UIView)