给Android程序员看的Objective-C入门

作者:snwrking

前言

最近两年因为公司业务需求, 我从Android开发转成了也涉猎前端的工作, 主要在做一些Android与ReactNative了.

但是众所周知的是, React Native其实是一个严重先天不足的跨平台框架. 简言之, 就是RN仅仅是一个UI框架, facebook在创建之初就是想使用yoga(跨平台的UI库)来包两个平台的UI代码. 而一旦是非UI的内容, 比如说sensor, network, security, permission, …, 那RN就很捉急了.

当然RN并不是完全没办法, 它的做法就是分而治之, 把这些东西下放到两个native平台去做, 然后把结果通过bridge告诉js端就行了. 这一点, 其实也就意味着, 对于稍深一些的RN功能, 程序员得了解js, android, iOS平台的开发. 比如说, 我们最近要做一个本地的server, 运行在手机上. 这个明显就是非UI的内容, 所以我得在android与iOS平台上分别写代码. (其实有一个react-native-static-server的库可以参照, 但我们的需求还要读到内容后解密, 所以更复杂, 需要我们自己定制)

这样的native开发的需求, 就引发了我们js开发, android开发, 得去了解些iOS的知识. 另外, 因为RN中的iOS代码是objective-C, 所以我们学习的语言就不是swift, 而是更古老(更反人类)的OC了.

Swift 还是 OC?

上面讲过, 对于RN开发来说, 一般使用OC较多. 特别是一些特别需求, 如加密, Swift是2020年2月才有了crypto库, 以前都没有的. 这些东东都只好使用OC来开发.

另外, Swift其实底层也在利用OC, 像是selector, 所以即使使用Swift, 你还是得了解一些OC的内容.

最后, iOS开发中一个好处就是它可以直接利用C的库. OC可以方便的利用C的库. 例子有很多个

  • 线程中的GCD, 其实使用的就是C语言的GCD库.
  • iOS不像java, 不能天生支持zip压缩/解压. 这时OC可以方便利用MiniZip这样的库里的 .h, .c文件.

综上所述, 这篇文章主要还是在介绍OC

OC里的类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值