oc学习之路

引用于:http://note.youdao.com/noteshare?id=4249169754a9dbe7809792df14402324

2019.03.23:

终于坚持着看了《objectiv-c编程》(第二版) Aaron Hillegass Mikey Ward [美],王蕾(译),华中科技大学出版社,此书在亚马逊上书评并不好,但是无奈objective-c没有几本好用的书,所以买了基本oc,其中有它,看了之后,看的前提我是了解了一点点oc语言的,但是看了这本书,并没有解惑的和获得知识的感觉,反倒就是知识点说不明白,内容胡乱编凑起来的一本书而已。

所以,建议后来者不要读此书。

我的两一本《objective-c基础教程》(第二版) Scott Knaster Waqar Malik [美] ,周庆成(译),

已经读到第九章:内存管理。真心不错的入门教程。《objectiv-c编程》(第二版)真是垃圾,耽误时间。



C++已经使用5年,oc和C++相比,欠缺很多,从语言层面上讲,不够丰富,内容语法混杂,如果想要使用好oc内存管理是一个令人心烦的事情,好在arc出现。另外就是oc里面支持C语言、C++语言的混编,foundation,也有C++版本corefoundation,所以要精通oc还是最好会C语言,如果会C++更好。

oc出生于1980年,1988年被apple公司使用,直到后面的各种优化,从书籍和资料上面讲,oc不够丰富,apple developer 网站打开缓慢,内容陈旧。以上都是自己亲身感受,非听信他人。如有不对的地方还请讨论指正。

补充:

xcode10已经放弃了oc的垃圾回收机制了吧,没有在xcode上面找到。目前比较流行的是ARC 和MRC。在进行混编,非oc对象的时候,需要自己管理内存。




1.C++重载、重写、覆盖:

参考:https://www.cnblogs.com/zhangjxblog/p/8723291.html

oc里面的重载、重写、覆盖:

不能重载:相同函数名称,不同参数这种方法。

没有隐藏:

参考:https://www.cnblogs.com/rainwz/p/4703872.html

2.id类型:

id:本质上是C++的模板类

id相当于C语言里面的void* 指针。

参考:https://www.jianshu.com/p/80ef5030e6c0

3.oc源码:

oc源码应该没有公开:

参考:https://www.jianshu.com/p/30ec92f1e707

oc代码转换为C++代码:

参考:https://www.jianshu.com/p/a5fb4852a4d3

4.oc的循环引用解决办法:

关键字:__weak

参考:https://www.jianshu.com/p/ec7b836f0fad

5.oc new 和alloc

new只能调用init方法

参考:https://www.cnblogs.com/lytwajue/p/6735283.html

dealloc

参考:https://www.jianshu.com/p/44f2ef4552a8

6.oc里面的枚举器,相当于C++的容器迭代器;

7.oc内存管理:

OS X 里面采用垃圾回收功能:

1.autoreleasepool 关键字

2.NSAutoreleasePool 对象

iOS里面采用ARC自动引用计数

8.开启和关闭ARC计数:?

9.开启和关闭垃圾回收:?

垃圾回收和ARC无法一起使用。

参考:https://www.jianshu.com/p/1db4a4b76c34

10.ARC:automaTIc reference counTIng

对应的还是MRC:手动管理内存

11.ROP:reserve object pointer

12.手动内存管理:

关键字:游戏玩家进入房间的故事。

参考:https://www.jianshu.com/p/48665652e4e4

13.oc的本质:

参考:https://www.jianshu.com/p/a11c565a6783?tdsourcetag=s_pctim_aiomsg

参考:https://www.jianshu.com/p/514a3afa512e?tdsourcetag=s_pctim_aiomsg

14.mac developer source:

参考:https://opensource.apple.com/tarballs/objc4/

15.NSData和结构体struct之间如何转换?

参考:https://www.cnblogs.com/pengyingh/articles/2371398.html?tdsourcetag=s_pctim_aiomsg

16.《objective-c基础教程》(第二版)

源码:https://www.apress.com/cn/book/9781430241881?tdsourcetag=s_pctim_aiomsg

17.oc属性:

参考:https://www.jianshu.com/p/98db9087a6e7?utm_campaign

参考:https://blog.csdn.net/m0_37681833/article/details/60872342

参考:

18.apple开发者网站:https://developer.apple.com/

很慢:。。。。GFW搞得挺好。。

19.oc var:

20.NSNumber与NSInteger的区别

一个是类,一个是基本类型?

参考:https://www.cnblogs.com/wangpei/p/3538698.html

21.oc property dynamic 和 synthesize

参考:https://blog.csdn.net/csdn_hhg/article/details/50183847

参考:https://blog.csdn.net/hherima/article/details/8622948

22.oc 选择器 selector

参考:https://www.jianshu.com/p/96bfa51346e2

23.oc类别和非正式协议:

参考:https://www.jianshu.com/p/1863af83b616

24.oc 委托:

不知道对不对:

参考:https://blog.csdn.net/ma52103231/article/details/7564314

委托人(代理人):协议(只有声明,没有实现)

被委托人(被代理人):实现协议的实体(协议的实现)

委托人发出委托任务:执行协议里面约定好的方法

被委托人执行委托任务:约定好的方法实际上是实现协议的方法。

协议,就是java语言里面的接口,C++里面的抽象类,不是新东西。

1980年的老语言能够好到那里去,目前从语法书写层面和概念上都是很落后的,无奈,被苹果公司选中了,是笨蛋也能出名而已。另外oc就是个大杂烩。C、C++都可以混在里面。语法更是混乱,对于不懂C、C++的人来说,很头大。

参考:https://www.jianshu.com/p/96cb34c9dab0

25.oc 拷贝copy mutablecopy

皮毛:还有点错误,但是可以参考一下

参考: https://www.jianshu.com/p/dcbbe69551ef

讲得不错

参考:https://www.jianshu.com/p/fa0698b95274

26.oc 代码块 中 的各种变量

参考:https://www.jianshu.com/p/df613c2b7a65

参考:https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Blocks/Articles/bxVariables.html#//apple_ref/doc/uid/TP40007502-CH6-SW1

27.apple developer 网站:

参考:https://developer.apple.com/library/archive/navigation/

28.id and id<xxx>

id是任意oc对象类型的指针

id<xxx> obj 是任意oc对象类型的指针,并且准守xxx协议。也可以这样写:id  <xxx>  obj

引申:遵守xxx协议的通用写法就是:<xxx> 无论是类声明中,还是变量声明中。

类声明这样写: @interface myprotocol : NSObject <xxx>          :协议myprotocol继承于基类NSObject 遵守xxx协议

变量声明这样写: id <xxx> val :变量类型为id 遵守xxx协议。

*注意:容易和C++模板类的声明、模板对象声明混淆。完全不是一个东西。

参考:https://www.cnblogs.com/hui1107464497/p/4509893.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,099评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,828评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,540评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,848评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,971评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,132评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,193评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,934评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,376评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,687评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,846评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,537评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,175评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,887评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,134评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,674评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,741评论 2 351