在做iPhone开发过程中,收集了一些常见到问题,可以用作面试题目,供大家参考。
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、这段代码有什么问题,如何修改
10、for (int i = 0; i < someLargeNumber;i++) {
NSString *string = @”Abc”;
string = [string lowercaseString];
string = [string stringByAppendingString:@"xyz"];
NSLog(@“%@”, string);
}
11、autorelease和垃圾回收机制(gc)有什么关系?
12、IPhone OS有没有垃圾回收(gc)?
13、什么是Notification?
14、什么时候用delegate,什么时候用Notification?
15、什么是KVC和KVO?
16、Notification和KVO有什么不同?
17、KVO在ObjC中是怎么实现的?
18、ViewController 的 loadView, viewDidLoad, viewDidUnload 分别是在什么时候调用的?在自定义ViewController的时候这几个函数里面应该做什么工作?
19、ViewController 的 didReceiveMemoryWarning 是在什么时候被调用的?默认的操作是什么?