1个回答
展开全部
可以没有C的基础。与C在语法上还是有些区别的,当然有C的基础最好了,对理解obj-c的内存管理方面是有帮助的。
虽然 Obj-C 是 C 的超集,但是和 C 是两种世界观。(面向过程 和 OO )
的确, C 也可以 OO 。甚至可以说, Obj-C 不就是 C 的非常好的 OO 的例子之一嘛~
不过,没有见过好的,基于 OO 的 C 教材(现实是,如果教材关心 OO ,一般也不会基于 C 了)。所以过程的思维可能会先入为主,那样先学 C 容易被带到沟里去。而一些老的 C 程序员(也很优秀)写的 Java 代码也证实了这点,看的我死的心都有。
其实直接看 Obj-C 也无不可。 iOS App 的 Obj-C 代码是高度框架化和自解释的。涉及 C 的部分一般是底层的一些实现或者自己绘图等内容,相对少用,熟悉了框架,建立了 OO 的概念再深入不迟。(既从 Obj-C -> C )
如果是从 C -> Obj-C ,从过程到 OO 的提升就是人为制造的麻烦(虽然也不太大但是毕竟没有必要)。
而且,你会发现 C 的很多东西 Obj-C 用不到。比如 C 中分量很重的内存地址操作, iOS 的 Obj-C 程序就几乎不涉及。而 Obj-C 绘图部分的一些代码很 C ,一般的 C 教程却不怎么讲,那些内容一般会放到另外一本书里面: 计算机图形学-C 语言。
当然无论是从 Obj-C -> C 还是从 C -> Obj-C , C 的一些相关知识都是需要的。
虽然 Obj-C 是 C 的超集,但是和 C 是两种世界观。(面向过程 和 OO )
的确, C 也可以 OO 。甚至可以说, Obj-C 不就是 C 的非常好的 OO 的例子之一嘛~
不过,没有见过好的,基于 OO 的 C 教材(现实是,如果教材关心 OO ,一般也不会基于 C 了)。所以过程的思维可能会先入为主,那样先学 C 容易被带到沟里去。而一些老的 C 程序员(也很优秀)写的 Java 代码也证实了这点,看的我死的心都有。
其实直接看 Obj-C 也无不可。 iOS App 的 Obj-C 代码是高度框架化和自解释的。涉及 C 的部分一般是底层的一些实现或者自己绘图等内容,相对少用,熟悉了框架,建立了 OO 的概念再深入不迟。(既从 Obj-C -> C )
如果是从 C -> Obj-C ,从过程到 OO 的提升就是人为制造的麻烦(虽然也不太大但是毕竟没有必要)。
而且,你会发现 C 的很多东西 Obj-C 用不到。比如 C 中分量很重的内存地址操作, iOS 的 Obj-C 程序就几乎不涉及。而 Obj-C 绘图部分的一些代码很 C ,一般的 C 教程却不怎么讲,那些内容一般会放到另外一本书里面: 计算机图形学-C 语言。
当然无论是从 Obj-C -> C 还是从 C -> Obj-C , C 的一些相关知识都是需要的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询