收集了一些常见到问题,能够用做面试题目,供你们参考。 面试
一、ObjC中,与alloc语义相反的方法是dealloc仍是release?与retain语义相反的方法是dealloc仍是release,为何?须要与alloc配对使用的方法是dealloc仍是release,为何? 函数
二、在一个对象的方法里面: spa
self.name = “object”;和 .net
name =”object” 对象
有什么不一样吗? get
三、这段代码有什么问题吗: string
@implementation Person it
- (void)setAge:(int)newAge { io
self.age = newAge; class
}
四、什么是retain count?
五、如下每行代码执行后,person对象的retain count分别是多少
Person *person = [[Person alloc] init];
[person retain];
[person release];
[person release];
六、为何不少内置类如UITableViewController的delegate属性都是assign而不是retain的?
七、定义属性时,什么状况使用copy,assign,和retain
八、autorelease的对象是在何时被release的?
九、这段代码有什么问题,如何修改
十、for (int i = 0; i < someLargeNumber; i++) {
NSString *string = @”Abc”;
string = [string lowercaseString];
string = [string stringByAppendingString:@"xyz"];
NSLog(@“%@”, string);
}
十一、autorelease和垃圾回收机制(gc)有什么关系?
十二、IPhone OS有没有垃圾回收(gc)?
1三、什么是Notification?
1四、何时用delegate,何时用Notification?
1五、什么是KVC和KVO?
1六、Notification和KVO有什么不一样?
1七、KVO在ObjC中是怎么实现的?
1八、ViewController 的 loadView, viewDidLoad, viewDidUnload 分别是在何时调用的?在自定义ViewController的时候这几个函数里面应该作什么工做?
1九、ViewController 的 didReceiveMemoryWarning 是在何时被调用的?默认的操做是什么?