开发WP转到iOS,我是这么做的。
WP不给力,部门撤去了WP小组,自然而然我转到了iOS小组,学了几周,算是上手开始做项目了,做个简单总结记录要点,为iOS学习开个路。
一、语言
以前写C#,起初接触Objective-C会觉得别扭,OC的语法挺怪的。
1、一个属性的声明:
你可能对括号中的get set方法的声明比较疑惑,这里有详细介绍——> http://blog.csdn.net/blue_jjw/article/details/9075235
2、一个实例方法的声明
方法类型 (方法的数据类型) 函数名: (参数1数据类型) 参数1的数值的名字 参数2的名字: (参数2数据类型) 参数2值的名字 …
就是这样,第一个参数是跟在"所谓的方法名"setSecNavTitle后面的,小提示:但必须纠正一个误区,Objective-C中的方法名是setSecNavTitle:isBackBtnOriginal:rightView:,而不是setSecNavTitle,否则以后写selector的方法名的时候容易被坑。
3、代码块block
就像是C#中的委托,简单介绍——> http://blog.csdn.net/totogo2010/article/details/7839061
小提示:提到委托就想起闭包,假设在block里用到了当前页面的实例对象self,如果block没被调用,那么当前页面和block都持有对方的一个强引用,形成retain cycle不能释放。如果block被调用了,这个问题就不存在。这时就要用到__weak关键字,使得block保存self的一个弱引用,不会造成retain cycle,但是如果在block被调用前,self已经被释放为nil,那么block中调用self的语句是没效果的。所以用不用__weak,可以根据实际情况自己衡量。
4、协议Protocol
就像是C#中的接口interface,OOP离不开它。 详细介绍——> http://blog.eddie.com.tw/2010/12/11/protocol-in-objective-c/
5、分类Category 和 扩展Extension
就像C#中的扩展方法,用来扩展现有类的。 详细介绍——> http://blog.csdn.net/yhawaii/article/details/6992094
6、GCD
Grand Central Dispatch中央调度。异步执行任务的技术之一。详细介绍——> http://www.jianshu.com/p/7e50d09cae50
http://www.cnblogs.com/SnailFish/articles/3199863.html
二、平台
1、iOS程序的生命周期,可以参见下面这个网址,很详尽。——> http://blog.csdn.net/totogo2010/article/details/8048652
2、ARC,自动引用计数。 ——> http://onevcat.com/2012/06/arc-hand-by-hand/
http://www.oschina.net/translate/objc-automatic-reference-counting-in-xcode-explained?print
三、工具
Xcode界面整体分为左、中、右三部分。这里值得一提的是:
中间部分(代码区)顶部的当前文件的目录路径里,最后一项展现的是当前光标所在的位置,点击那个位置,会下拉这个文件的代码概览,如同WP的屏幕概览,当一个文件的代码量很大时,很方便快速浏览和定位,具体的实现方式是在代码中用#pragma mark来标注,可以自行百度。
右边部分的上半部分是属性框和帮助信息(VS的帮助信息直接在光标处弹出框显示,而Xcode是在左边的框里显示)。下半部分是控件列表。
快捷键很重要,这些是我最近常用的,不断扩充中...
在Mac系统中要习惯用Command键(也就是非苹果键盘的Win键)来取代Ctrl键。
1、其中复制、粘贴 、剪切、全选、 保存、还原到上一步这几个快捷键就是把原先的Ctrl键换成Command键。
2、返回上一个\下一个编辑的地方 Ctrl + Command + left\right(方向键)
在.h和.m文件之间切换 Ctrl+ Command + up\down(方向键)
3、查找 Command + F
全局查找 Shift + Command + F
4、Build Command + B
运行 Command + R
不触发断点 Command + Y
5、左右缩进 Command + [ 或者 ]
6、注释或取消注释 Command + /
7、参数提示 Command + .
8、自动提示列表 Esc
9、移动光标到本行行首 Ctrl + A
移动光标到本行行尾 Ctrl + E
四、实践
真正开始做项目时,往往会有些疑惑,这里总结下我的疑惑。
1、是手写UI,还是用xib,还是用StoryBoard? 看这里——> http://onevcat.com/2013/12/code-vs-xib-vs-storyboard/ 顺便推荐下他的博客,很用心!根据我目前的经验是,不推荐手写UI,不直观。没在项目中用过StoryBoard,因为意识到可能出现的多人协作问题。我觉得还是xib最好,直观方便。
2、用传统的Frame,还是用Auto Layout。 看这里——> http://www.tuicool.com/articles/iIBJneA
http://onevcat.com/2012/09/autoayout/
平时开发时还碰到过一个问题,对使用了Auto Layout的UIView无法通过更改其Frame来产生动画,因为此时的Frame是受约束Constraint影响,而不受我们的控制,因此可以将计就计,通过改变UIViewd的约束Constraint来实现。
3、当你真正开始做项目时,发现iOS页面无非就是UITableView或者UICollectionView,根据index返回相应的cell就好。这里推荐一篇挖的很深的文章,有兴趣可以看看——> http://blog.jobbole.com/67272/
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。