iOS进阶路线以及进阶书籍
第一,熟悉ARC机制:首先要了解ARC的前世今生。假设了解不清楚会导致两种可能,1,一个对象的引用莫名奇异为空。或失效了。这个一般都能在开发阶段及时发现,由于会导致应用异常。2。导致内存溢出;不了解ARC机制非常easy导致内存不能被正确释放,这类问题会非常隐蔽。
若非特意去做内存測试,那么都会在用户使用的阶段才会被暴露出来,由于内存消耗是个累积的过程。用户不断使用APP,至到内存耗尽。异常退出。
第二,了解Block的使用方法:我使用后的感受是,能够把一个操作的不同结果的处理放在一起,而不用分散到各处。逻辑看起来更加清晰。
第三,GCD的用户:很好用的多线程。再加上block的,能够不再使用selector了。
以上三点内容能够看这本书《Objective-C高级编程:iOS与OS X多线程和内存管理》
第四,灵活使用auto layout:auto layout 出现有非常长时间了。自从ios7 xcode5開始又有了重大改进。假设你还是使用autosizing,然后自己计算位置的话,那你就是老古董。
-第一阶段:Auto layout的入门能够看岁寒的的三篇博文。从入门開始,到做几个有难度的页面:http://lvwenhan.com/ios/430.html
-第二阶段:然后就在实际中多多操作。当有些感悟的时候。能够看看这篇总结帖:http://vit0.com/blog/2013/12/07/iosxue-xi-zhi-autolayout
-第三阶段:实际上auto layout是基于一套理论基础。功能很强大。要做真真的高手的话。请看这本书《iOS Auto Layout开发秘籍(第2版) 》
第五。看看人家是怎么做:非常多事情自己在做的时候会以为这就是最优方法了。这样的状态非常危急,陷入到了闭门造车的状态。
改变这样的状态的方法
-方法1:和外界多交流;
-方法2:看这本书《iOS开发进阶》。这本书实际上记录作者工作中的一些技能和技巧;内容不能说非常全面,可是翻一翻。或许就能发现其它人做的好的地方。
第六。Swift,这个就不多说了。语言本身我没看出特别高明的地方。
效率,模式?事实上就是个oc的翻版。苹果不会无缘无故推出这个语言。近期轰动的举动就是宣布开源了。
费这么大力,一定有原因的,程序猿们,跟上吧。
再补充三个
第七,coredata:曾经我也用sqlite来保存数据,事实上通过coredata来保存数据更加简单,非常类似hibernate。深入讲coredata的书不多。有一本叫《CoreData应用开发实践指南》 ,并不推荐用于学习,能够作为參考。
并不非常难,关键是实际中操作。
第八。设计模式:严格来讲OC是个面向对象的语言。23种设计模式还是能够适用的。
推荐 《Objective-C编程之道:iOS设计模式解析》
第九,《iOS应用逆向project》,剑走偏锋就是破解,用在正途就是学习。
iOS进阶路线以及进阶书籍的更多相关文章
- iOS原生地图开发进阶——使用导航和附近兴趣点检索
iOS原生地图开发进阶——使用导航和附近兴趣点检索 iOS中的mapKit框架对国际化的支持非常出色.在前些篇博客中,对这个地图框架的基础用法和标注与覆盖物的添加进行了详细的介绍,这篇博客将介绍两个更 ...
- CI Weekly #8 | CI/CD 技能进阶路线
在使用 flow.ci 进行持续集成的过程中,也许你会遇到一些小麻烦.最近我们整理了一些常见问题在 flow.ci 文档之 FAQ,希望对你有用.如果你遇到其他问题,也可以通过「在线消息」或去 Git ...
- vue3.0新特性以及进阶路线
Vue3.0新特性/改动 新手学习路线 ===> 起步 1. 扎实的 JavaScript / HTML / CSS 基本功.这是前置条件. 2. 通读官方教程 (guide) 的基础篇.不要 ...
- iOS开发路线简述
1 iOS开发环境1.1 开发环境标准的配置是MacOSX+Xcode.MacOSX的话首选用苹果电脑,Macmini最便宜只要4000多就好了然后自己配一个显示器,MacBookPro 也可以,不推 ...
- ios 学习路线总结
学习方法 面对有难度的功能,不要忙着拒绝,而是挑战一下,学习更多知识. 尽量独立解决问题,而不是在遇到问题的第一想法是找人. 多学习别人开源的第三方库,能够开源的库一定有值得学习的地方,多去看别的大神 ...
- Python:什么是进阶,如何进阶?
目录 Python:什么是进阶,如何进阶? 1. 什么是进阶? 2. 如何进阶? 3. 除此之外呢? Python:什么是进阶,如何进阶? 1. 什么是进阶? 一门编程语言的基础部分,往往非常简单.如 ...
- iOS开发——iOS学习路线
iOS学习路线 版权声明:欢迎转载,请贴上源地址:http://www.cnblogs.com/iCocos/(iOS梦工厂) 一:自学初步学习路线 二:高级完整学习路线 三:完整知识与能力体系 思维 ...
- 架构师素养及从小菜进阶架构(CTO)的书籍【转】
CTO要了解无线技术/搜索/大数据/数据库等. -- 通常定义架构有几个层次,这包括业务架构.产品架构.应用架构和技术架构: 1.业务架构:描述一个企业围绕一个行业做了哪些业务,例如支付行业的收单.退 ...
- php自学提升进阶路线
为了自己对php的系统全面深入的掌握,我通过个人经验,以及搜索网上高手经验,汇总了一份php自我学习路线规划,包括实战演练.学习建议.高手进阶.常见问题和测试总结五块.算是一个系统的学习计划和目标吧. ...
随机推荐
- jersey+jetty实现文件上传
服务配置与启动类 import org.glassfish.jersey.servlet.ServletContainer; import javax.ws.rs.Path; import org.e ...
- hash_set和hash_map
1.hash_set集合容器 hash_set利用链式哈希表,进行数据的插入.删除和搜索.与set容器同样,不同意插入反复键值的元素.SGIC++哈希表是一个链式的结构,由表头和一系列单链组成.表头是 ...
- IOS越狱开发错误解决
Questions: haseScriptExecution Run\ Script /Users/jun/Library/Developer/Xcode/DerivedData/ButtonMa ...
- Android 控件:CheckBox
首先,在布局文件里注冊CheckBox activity_main.xml <LinearLayout xmlns:android="http://schemas.android.co ...
- bug 7715339 登录失败触发 ‘row cache lock’ 等待
Bug 7715339 - Logon failures causes "row cache lock" waits - Allow disable of logon delay ...
- UVa 11094 - Continents
题目:有一些岛屿在湖中.地图用两种字符表示.当前处在位置是一个岛屿.求除了当前岛屿外的最大岛屿. 分析:图论,floodfill.直接利用dfs求联通部分的面积就可以,然后取出最大. 说明:横线没有边 ...
- 后台vb校验是否GUID
'校验是否GUID Private Function IsGUID(ByVal strGUID As String) As Boolean Dim regexTemp As System.Text.R ...
- 基于Linux系统的Nagios网络管理模块的实现
基于Linux 系统的Nagios网络管理模块的实现 1.引言 随着计算机网络的普及,网络管理已成为信息时代中最重要的问题之一.在现有的技术条件下,人们希望有一个更加稳定可靠的网络环境.计算机网络管理 ...
- Vue Cli 打包之后静态资源路径不对的解决方法
cli2版本: 将 config/index.js 里的 assetsPublicPath 的值改为 './' . build: { ... assetsPublicPath: './', ... } ...
- C#调用C++数组,结构体DLL
1.基本数据类型的传递 常见数据类型的传递 C/C++ C# 长度 short short 2Bytes int int 4Bytes long(该类型在传递的时候常常会弄混) int 4Bytes ...