工作时总结的iphone面试题,笔试题
1.objective-c中的数字对象都有哪些,简述它们与基本数据类型的区别是什么
2.用NSLog函数输出一个浮点类型,结果四舍五入,并保留一位小数
3.截取字符串”20|http://www.621life.com“ 中 ‘|’字符前面及后面的数据,分别输出它们
4.objective-c中的词典对象、可变词典对象是哪个,初始化一个含有两个键值对的可变词典对象,并动态的添加和删除一条记录,输出第一条记录
5.获取项目根路径,并在其下创建一个名称为userData的目录。
6.在一个对象的方法里面:self.name = “object”;和name =”object”有什么不同吗?
7.定义属性时,什么情况使用copy,assign,和retain
8.ViewController 的viewDidLoad,viewWillAppear,viewDidUnload,dealloc
分别是在什么时候调用,在自定义ViewController的时候这几个函数里面应该做什么工作?
9.简述objective-c内存管理的实现机制,并简述什么时候由你负责释放对象,什么时候不由你释放
10.类的定义及声明文件以什么为后缀名?
11.怎样自动生成属性的获取方法和设置方法
12.声明一个静态方法和一个实例方法
13.写一个发送同步http请求,并获得返回结果的方法
14.怎样启动一个新线程,子线程怎样刷新主UI
15.什么是MVC,你工作时怎样运用它
第3题:
NSRange range = [responseString rangeOfString:@"|"];
int location = range.location;
NSString *str1 = [responseString substringToIndex:location];
NSString *str2 = [responseString substringFromIndex:location+1];
第4题:
NSDictionary NSMutableDictionary
NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",nil];
[dic setObject:@"value3" forKey:@"key3"];
[dic removeObjectForKey:@"key3"];
[dic objectForKey:@"key1"];
第5题:
// 获取根路径
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:];
// 创建文件系统管理器
NSFileManager *fileManager = [[NSFileManager alloc] init];
// 判断userData目录是否存在
if(![fileManager fileExistsAtPath:[NSString stringWithFormat:@"%@/userData", documentsDirectory]]) {
// 不存在,创建一个userData目录
[fileManager createDirectoryAtPath:[NSString stringWithFormat:@"%@/userData", documentsDirectory]withIntermediateDirectories:false attributes:nil error:nil];
}
第6题:
self.name = “object”会调用对象的setName()方法,
name = “object”会直接把object赋值给当前对象的name 属性。
并且 self.name 这样retainCount会加1,而name就不会。
第 7题:
assign用于简单数据类型,如NSInteger,double,bool,retain 和copy用户对象,copy用于当 a指向一个对象,b也想指向同样的对象的时候,如果用assign,a如果释放,再调用b会crash,如果用copy 的方式,a和b各自有自己的内存,就可以解决这个问题。retain 会使计数器加一,也可以解决assign的问题。另外:tomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。在多线程环境下,原子操作是必要的,否则有可能引起错误的结果。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2008-07-25 正則表達式驗證通用方法