iOS面试笔记(3)
来源:互联网 发布:仓库卷帘自动门plc编程 编辑:程序博客网 时间:2024/05/22 03:19
一、数组和链表的优缺点
1、数组,在内存上是连续的空间,即顺序存储,所以在通过索引进行查询数据时效率比较高;而对于数组插入和删除操作,则效率会比较低,在第一个位置进行插入数据,其余数据就需要依次向后移动,而第一个数据进行删除,则需要所有数据全部向前移。
2、存储由数据和指针两部分组成存放在内存中是不连续的。 链表是由一系列节点组成的,每个节点都会有一个链点,这就是next链,而next链则会执行下一个node的引用,所以我们在插入或者删除的时候,需要该表链表next链的指向地址即可,每个节点不需要内存进行连续存储,这样会减小删除和插入的线性开销。链表结构主要分为两种链表,单向链表和双向链表 ,即单向链表只有一个next链,而双向链表会有next链和pre链。
二、iOS捕获异常并获取崩溃日志
1、在程序启动时加上一个异常捕获监听,用来处理程序崩溃时的回调动作
NSSetUncaughtExceptionHa ndler(&UncaughtExceptionHandler );
UncaughtExceptionHandler是一个函数指针,该函数需要我们实现,可以取自己想要的名字。当程序发生异常崩溃时,该函数会得到调用。
2、实现处理函数void UncaughtExceptionHandler(NSException *exception) { NSArray *arr = [exception callStackSymbols];//得到当前调用栈信息 NSString *reason = [exception reason];//非常重要,就是崩溃的原因 NSString *name = [exception name];//异常类型 }3、发给开发者,主要有种方式a、将崩溃信息持久化在本地,下次程序启动时,将崩溃信息作为日志发送给开发者。
b、通过邮件发送给开发者。不过此种方式需要得到用户的许可,因为iOS不能后台发送短信或者邮件,会弹出发送邮件的界面,只有用户点击了发送才可发送。NSString *crashLogInfo = [NSString stringWithFormat:@"exception type : %@ \n crash reason : %@ \n call stack info : %@", name, reason, arr]; NSString *urlStr = [NSString stringWithFormat:@"mailto://839040434@qq.com?subject=bug报告&body=感谢您的配合!错误详情:%@",crashLogInfo]; NSURL *url = [NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; [[UIApplication sharedApplication] openURL:url];
三、自定义相机
自定义相机使用系统库AVFoundation30分钟搞定iOS自定义相机
0 0
- iOS面试笔记(3)
- iOS面试笔记(1)
- iOS面试笔记(2)
- ios 面试(3 )
- JAVA面试笔记(3)
- iOS面试3
- iOS面试系列3
- ios面试(二)
- iOS面试(选择题)
- 《程序员面试宝典》一些笔记(3)
- iOS笔记 (3)
- 面试笔记3
- 面试笔记3
- java面试笔记3
- 面试笔记3
- 【iOS面试】iOS面试经典题 NO.3
- iOS面试总结(一)
- IOS面试攻略(1.0)
- Caffe的solver文件配置 的介绍
- canvas标签设长宽是在css中还是在标签中
- CMS内容管理系统
- windows下部署Elasticsearch
- LeedCode 之 Climbing Stairs
- iOS面试笔记(3)
- 使用fio测试磁盘I/O性能
- 面向对象-(1)
- hive表信息查询:查看表结构、表操作等
- AndroidStudio中使用Jacoco统计Android应用程序代码覆盖率
- 1006. 换个格式输出整数 (15) PAT
- Reshape the Matrix
- 百度2017春招笔试真题编程题集合-2
- iOS 协议代理的继承和扩展