摘要:
1,不要阻塞主线程主线程是应用程序处理触摸事件和其它用户输入的地方。为了确保应用程序总是可以响应用户,我们不应该在主线程中执行运行时间很长或可能无限等待的任务,比如访问网络的任务。相反,您应该将这些任务放在后台线程。一个推荐的方法是将每个任务都封装在一个操作对象中,然后加入操作队列。当然,您也可以自己创建显式的线程。将任务转移到后台可以使您的主线程继续处理用户输入,这对于应用程序的启动和退出尤其重要。在这些时候,系统期望您的应用程序及时响应事件。如果应用程序的主线程在启动过程中被阻塞住了,系统甚至可能在启动完成之前将它杀死;如果主线程在退出时被阻塞了,则应用程序可能来不及保存关键用户数据就被杀 阅读全文
摘要:
1,将安装包.ipa解压,得到Payload文件夹,里面是.app文件。2,用终端,进入到.app所在目录3,输入命令形式如下,即可看到crash的代码所在位置。atos -arch armv7 -o '**.app/**' 0x00071398 阅读全文
摘要:
UITableView 性能优化(卡问题自检)1.使用不透明视图。 不透明的视图可以极大地提高渲染的速度。因此如非必要,可以将table cell及其子视图的opaque属性设为YES(默认值); 其中的特例包括背景色,它的alpha值应该为1(例如不要使用clearColor); 图像的alpha值也应该为1,或者在画图时设为不透明。2.减少视图的数目。 view是很大的对象,创建它会消耗较多资源,并且也影响渲染的性能。 最佳的解决办法还是继承UITableViewCell,并在其drawRect:中自行绘制: - (void)drawRect:(CGRect)rect { if (imag 阅读全文
摘要:
综述:在项目中使用 ARC之后,所有的编程都和以前一样,除了你不再调用 retain, release, autorelease。启用 ARC 之后,编译器会自动在适当的地方插入retain, release, autorelease 语句。ARC 的规则:只要还有一个变量指向对象,对象就会保存在内存中。ARC 的限制:ARC 只能工作于 Objective-C 对象,如果 应用使用了 Core Foundation 或 malloc()/free(),此时需要你来管理内 存。“strong”指针和“weak”指针:“strong”指针:能够保持对象的生命。因为 strong 指针会保持对象的 阅读全文
摘要:
1,device token到底是什么呢?结论:device token是对APNs来说,设备的标识符,与app无关。device token不同于UIDevice的uniqueIdentifier(即UDID),因为出于安全和隐私原因,当设备被擦除后,token发生变化。2,不同的app的device token相同么?结论:同一台设备上,不同的app获得的device token是一样的,device token与app无关。3,一个设备会产生多个device token么?结论:一个设备可能会产生多个device token。有以下两种情况:(1)设备擦除过,token变化。(2)设备同 阅读全文
摘要:
// 评分 NSString *str = [NSString stringWithFormat: @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",APPID]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];//软件首页 NSString *str2 = [NSString stringWithFo 阅读全文