总结

2018-04-24  本文已影响17人  奇异果好补

网络通讯中加密方式有哪些,各自原理?

谈下开发中iOS缓存的理解

缓存主要针对展示UI层数据。比如个人资料界面。

你认为开发哪些导致crash?

当App闪退时,操作系统会生成一个crash日志,保存在设备上。crash日志上有用的信息,比如每个正在执行线程的完整堆栈信息和内存映像,这样就能够通过,分析这些信息来定位crash发生时的代码逻辑,最终找到App闪退的原因。

crash主要有两种原因:违反iOS系统规则导致的crashApp代码逻辑Bug导致的crash

1.代码逻辑的Bug

2.违反iOS系统规则的Bug

3.使用过KVO吗?

1.能够提供简单的方法实现两个对象的同步
2.能够对内部对象的状态作出相应,而且不需要改变内部对象的实现
3.能够提供被观察者属性的最新值和之前的值
4.完成对观察对象的抽象,不需要额外的代码来允许观察者被观察

1.观察的属性必须要用字符串定义,编译时不会出现警告
2.对属性重构,修改了一个被观察类的某些属性,但是监听代码没有对应修改,将导致观察代码不可用
3.复杂的"if"语句,要求对象正在观察多个值,因为所有的观察代码通过一个方法来指向
4.当释放观察者的时候不需要移除观察者

如何对iOS设备进行性能测试?

使用CocoPods吗?它是什么?CocoaPods原理

集成第三方框架有哪些方法?

crash的收集和定位bug的方式谈下

NSSetUncaughtExceptionHandler (&UncaughtExceptionHandler)。 程序启动代理方法
//:collection crash info by Mili  

void UncaughtExceptionHandler(NSException *exception) { NSArray *callStack = [exception callStackSymbols];   
NSString *reason = [exception reason]; 
NSString *name = [exception name];  

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSString * dateStr = [formatter stringFromDate:[NSDate date]];

NSString * iOS_Version = [[UIDevice currentDevice] systemVersion];
NSString * PhoneSize    =   NSStringFromCGSize([[UIScreen mainScreen] bounds].size);
NSString * App_Version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
NSString * iPhoneType = @"当前设备名字";
NSString *uploadString = @"所有拼接信息";
// 存储到本地沙盒.下次启动找寻

上一篇 下一篇

猜你喜欢

热点阅读