iOS 项目优化

/1.数据获取下载(特别是大数据)最好放在global_queue中操作

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

});

//2.UI更新放在main_queue中更新(不管当前线程是否处于主线程)

dispatch_async(dispatch_get_main_queue(), ^(void) {
          [yourTableView reloadData];
         });

//使用Block 语法是,应注意self 的循环应用导致的一些问题(如 无法dealloc等)

使用   __weak __typeof(self) weakSelf = self或 __weak XxxViewController *weakSelf = self;

4.图片加载使用,大图使用 方法2或3

//方法1  如果使用这种方式加载,只要程序不退出,它便一直会在内存中。只需加载一次,它便在内存中,所以第二次加载速度很快。

UIImage *imag1 = [UIImage imageNamed:@"image.png"];
//方法2     这种加载方式由于我们将它释放掉了,会再次加载。
UIImage *image2 = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image.png" ofType:nil]];
//方法3
NSData *imageData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image.png" ofType:nil]];
UIImage *image3 = [UIImage imageWithData:imageData];
UIImage  *image=[UIImage imageWithContentsOfFile:@"file://doucment/image.png"];

//七牛图片一些小的头像使用用缩略图

5,大量UI及数据时使用懒加载方式加载

时间: 2024-10-05 18:37:21

iOS 项目优化的相关文章

iOS项目优化:可执行文件瘦身

1.删除无用资源文件 1X的图片可以全部删掉 重复的图片分两种,一种是名字一样的图片,如果你使用.xcassets来管理图片,那么Xcode的左边栏会有警告提示图片名字重复,直接按提示一一处理即可.另一种是名字不一样但是文件一样的图片,我们使用了一个Python脚本(@甘超江 大神出品)来扫描,每次编译的时候执行该脚本,如果有扫描命中则会让Xcode编译失败,此时需要人工去处理.需要注意的一点就是使用.xcassets来管理图片的时候回存在一个映射关系,通过imageNamed:方法使用的名字和

iOS性能优化:Instruments使用实战

iOS性能优化:Instruments使用实战 最近采用Instruments 来分析整个应用程序的性能.发现很多有意思的点,以及性能优化和一些分析性能消耗的技巧,小结如下. Instruments使用技巧 关于Instruments官方有一个很有用的用户使用Guide,当然如果不习惯官方英文可以在这里找到中文本翻译版本PDF参阅.Instruments 确实是一个很强大的工具,用它来收集关于一个或多个系统进程的性能和行为的数据极为方便,并能及时跟踪随着时间产生的数据.还可以广泛收集不同类型的数

iOS 项目经验以及APP上架流程 _Dylan

1. 用户需求的确定, 功能方法的可行性评估, 用户给出的价格等是否合理. 2. 框架搭建, 需求数据整理, 功能块设计模式的预想, 预计空闲时间(用来缓冲) 3. 项目管理, 项目规划, 时间轴的设置, 人员的分配, 项目预算 4. 项目框架编写 5. 代码分工 6. 工作Bug的调整, 时间的调整, 功能的取舍(需与客户商讨), 项目工期的把握, 项目报告的书写 7. 项目优化, 代码质量话, 代码高内聚, 低耦合为最佳 8. 软件测试, 黑白测试. 9. 国际化处理, 图片处理, 性能提升

深入浅出聊Unity3D项目优化:从Draw Calls到GC

前言: 刚开始写这篇文章的时候选了一个很土的题目...<Unity3D优化全解析>.因为这是一篇临时起意才写的文章,而且陈述的都是既有的事实,因而给自己“文(dou)学(bi)”加工留下的余地就少了很多.但又觉得这块是不得不提的一个地方,平时见到很多人对此处也给予了忽略了事,需要时才去网上扒一些只言片语的资料.也恰逢年前,寻思着周末认真写点东西遇到节假日没准也没什么人读,所以索性就写了这篇临时的文章.题目很土,因为用了指向性很明确的“Unity3D”,让人少了遐(瞎)想的空间,同时用了“高大全

iOS项目开发实战——iOS网络编程获取网页Html源代码

如今我们身处互联网的时代,任何一个软件或是App,都会或多或少与网络打交道,并不断发生数据交互.一个没有涉及网络编程的应用会显得比较low,这里我们将会开始使用Swift开发iOS应用,并且主要来实现网络操作方面的功能. 这里的需求是获取某个网页的Html源代码,即从网上获取数据.具体实现如下: (1)创建一个iOS项目,Language选择Swift.然后在ViewController.swift中实现如下代码: override func viewDidLoad() { super.view

IOS 性能优化的建议和技巧

IOS 性能优化的建议和技巧 本文来自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程序员.这是他的个人网站:http://www.marcelofabri.com/,你还可以在Twitter上关注@marcelofabri_. 性能对 iOS 应用的开发尤其重要,如果你的应用失去反应或者很慢,失望的用户会把他们的失望写满App Store的评论.然而由于iOS设备的限制,有时搞好性能是一件难事.开发过程中你会有很多需要注意的事项,你也很容易

深入浅出聊Unity3D项目优化:从Draw Calls到GC (难度2 推荐5)

原文出处: 慕容小匹夫的博客(@慕容小匹夫) 前言: 刚开始写这篇文章的时候选了一个很土的题目...<Unity3D优化全解析>.因为这是一篇临时起意才写的文章,而且陈述的都是既有的事实,因而给自己"文(dou)学(bi)"加工留下的余地就少了很多.但又觉得这块是不得不提的一个地方,平时见到很多人对此处也给予了忽略了事,需要时才去网上扒一些只言片语的资料.也恰逢年前,寻思着周末认真写点东西遇到节假日没准也没什么人读,所以索性就写了这篇临时的文章.题目很土,因为用了指向性很明

iOS项目开发实战——获取网页源代码的二进制数据

我在上一篇博客<iOS项目开发实战--iOS网络编程获取网页Html源代码>中讲述了如何获取一个网页的HTML源代码,可以满足一定的需求.但是由于特殊原因,我们想获取的是一个网页的二进制数据,那么应该怎么办呢? 具体实现如下: (1)创建一个iOS项目,Language选择Swift,然后在ViewController.swift 中写入如下代码: override func viewDidLoad() { super.viewDidLoad() var data = NSData(conte

【腾讯Bugly干货分享】微信读书iOS性能优化

本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/578c93ca9644bd524bfcabe8 "8小时内拼工作,8小时外拼成长"这是大家共同的理想.除了每天忙于工作外,我们都希望能更多地区吸收领域内的新知识与新技能,从而走向人生巅峰. Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员都是经过审核的移动开发工程师.每周都会举行嘉宾分享,话题讨论等活动. 上一期我们邀请了腾讯SNG工程师&qu