iPhone开发、ObjectiveC_面试题目
在做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是在什么时候被调用的?默认的操作是什么?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构