- 论坛徽章:
- 0
|
本人混迹IT圈,低级码农一枚,一直用着C/C++在windows平台混口饭吃讨生活。业余时间玩玩
python,在流行table标签用于布局的年代写过html和javascript。
前段时间,开始啃Objective-C和Cocoa,目前水平处于改过俩X OS系统下的应用程序,能用XCode写,编,调,搜ADC和google能自己弄懂一些问题。正努力成为一个合格的大苹果开发人员,为我大iOS系统添砖加瓦。
以下是我作为一个C/C++半瓶子咣当水平的程序员,在学习OC时的心得,**由于个人水平尚浅,有错在所难免
所以不保证内容都是正确的,欢迎斧正。**
= = = = = 我是废话分割线 = = = = = =
* 环境
+ 买一台苹果机,不要在虚拟机安装黑苹果或其他跨平台库上浪费时间,既然想学苹果开发,直接上一台苹果机,不仅能节约学习时间,并且绝对物超所值。
+ 一定要熟悉ADC(Apple Developer Center)的文档,书籍能帮你快速入门,入门后的继续修行都靠文档了。
+ 看本英文版的OC教程,这样你就能知道通过什么关键字去ADC上找你想要的答案了。
* Objective-C 对 C的扩展
+ 用#import代替C中的#include
+ NSLog()函数代替C中的printf()函数
+ 尽量使用NSString避免使用char str[]字符串数组,@""来表示静态字符串,%@用于打印
+ BOOL布尔类型 YES为真 NO为假
* Objective-C的面向对象范式编程
+ self 指代自身
+ NSObject为root
+ 类声明和实现的语法规则,定义函数的时候参数之间要多用介词(from, to, by, at, with)加名词
+ 不支持多重继承
* 基础框架
+ NSRange,NSSize,NSPoint,NSRect都是结构体,用浮点表示,NSRect是个NSPoint和NSSize不是left,top,right,bottom
+ 基本数据类型:string, array, dictionary。善用array替换数组。
* 高内聚低耦合,远离继承,善用组合和类别
* Objective-C 的内存管理
+ 内存管理分两种,垃圾收集(GC)和引用计数(RC),其中引用计数又分为两种,自动引用计数(ARC)和手动引用计数(MRC)。
+ GC是运行时。ARC是编译时。RC是人肉时。RC是基础,ARC是福利,编译前自动为代码加入retain/release/autorelease。GC高级货,兼容了iOS再学也不迟(其实也不用学。。。)。
+ RC的规则
- retain和release配对使用
- alloc/new/copy后用完要调用release
- autorelease 将对象放入pool里pool被release的时候通知pool中的对象调用release。如作为函数返回对象使用。
* 属性:就是个封装用的语法糖
+ @dynamic 人肉写
+ @synthesize 自动填充
- assign retain copy
- readwrite,readonly
- atomic nonatomic
* 类别,只能扩展函数,命名冲突时,类别优先。用于分隔类的实现,创建私有属性,加入协议到对象中。
* 协议和委托:委托就自己不处理,交给别人处理,为了保证别人能处理要跟别人定个协议。
* 深拷贝和浅拷贝,浅拷贝是引用,深拷贝是创建新的对象
|
评分
-
查看全部评分
|