V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jtsai
V2EX  ›  iOS

2017 年, ios 开发的主流语言还是 oc 吗?

  •  
  •   jtsai · 2017-10-19 13:54:23 +08:00 · 10148 次点击
    这是一个创建于 2591 天前的主题,其中的信息可能已经有所发展或是发生改变。

    弃坑 RN 了。入坑 swift 还是 oc。区别大吗?

    56 条回复    2017-10-22 11:14:11 +08:00
    deyu
        1
    deyu  
       2017-10-19 13:58:16 +08:00   ❤️ 1
    小项目用 swift 大项目用 OC swift 还是不怎么稳定
    chmlai
        2
    chmlai  
       2017-10-19 14:17:39 +08:00   ❤️ 1
    OC 容易招人
    webfrogs
        3
    webfrogs  
       2017-10-19 14:26:42 +08:00   ❤️ 2
    国内还是 objc 为主。不过入了 Swift 的坑后就不会想回头写 objc 了
    tim2017
        4
    tim2017  
       2017-10-19 14:31:12 +08:00   ❤️ 2
    RN 是什么东东? 皇家海军吗?
    zetasq
        5
    zetasq  
       2017-10-19 14:35:13 +08:00   ❤️ 1
    swift 有很多优点(泛型、函数重载和语法糖等),api 也稳定下来了。个人感觉目前唯一的缺点是大项目编译非常慢,而且暂不支持增量编译。
    finab
        6
    finab  
       2017-10-19 14:40:09 +08:00   ❤️ 2
    感觉 Swift 现在最大的缺点是 Xcode
    ostholz
        7
    ostholz  
       2017-10-19 14:41:08 +08:00   ❤️ 1
    swift 让人又爱又恨, 写起来确实比 OC 方便, 但是每次新版本就让人头疼. 好在这次 3.2 到 4.0 没什么大问题. 另外 swift 的 App 比 OC 的体积大.
    jtsai
        8
    jtsai  
    OP
       2017-10-19 14:42:29 +08:00
    @tim2017 是的,Royal Navy 英国皇家海军。
    misaka20
        9
    misaka20  
       2017-10-19 14:51:17 +08:00   ❤️ 1
    OC
    kobe1941
        10
    kobe1941  
       2017-10-19 14:54:24 +08:00   ❤️ 1
    刚入坑 RN....
    jtsai
        11
    jtsai  
    OP
       2017-10-19 14:56:41 +08:00
    @kobe1941 还行的,坚持自己。
    creayningy
        12
    creayningy  
       2017-10-19 15:00:03 +08:00   ❤️ 1
    现在大部分的 JD 都还是 OC
    kingcos
        13
    kingcos  
       2017-10-19 15:00:52 +08:00 via iPhone   ❤️ 1
    说多了都是泪……
    nicevar
        14
    nicevar  
       2017-10-19 15:06:36 +08:00   ❤️ 1
    很多公司的项目确实还在用 OC,毕竟 swift 一直在 beta 版本
    jtsai
        15
    jtsai  
    OP
       2017-10-19 15:07:24 +08:00
    @kingcos 说出你的故事
    onevcat
        16
    onevcat  
       2017-10-19 15:14:26 +08:00 via iPhone   ❤️ 5
    我司 iOS 程序员已经默认都是 Swift 了…谁还要写 OC 啊,都是一副看古董的眼光…
    superleexpert
        17
    superleexpert  
       2017-10-19 15:17:13 +08:00   ❤️ 1
    occccccc
    acros
        18
    acros  
       2017-10-19 15:21:00 +08:00 via iPhone   ❤️ 3
    那个,虽然我不是 ios 程序员。
    国内有哪家公司会找不会 oc 的 ios 程序员吗?
    jtsai
        19
    jtsai  
    OP
       2017-10-19 15:22:09 +08:00
    @acros 不考虑工作,也不考虑逼格,从最实用的角度出发。
    deyu
        20
    deyu  
       2017-10-19 15:28:19 +08:00
    @onevcat 活抓喵神 swift 现在感觉稳定吗
    derek80
        21
    derek80  
       2017-10-19 15:34:52 +08:00
    OC 直接到了 RN,跳过 swift 了。同时也关注 flutter .
    lyragosa
        22
    lyragosa  
       2017-10-19 15:53:04 +08:00
    都 7102 年 swift 还没 stable
    creayningy
        23
    creayningy  
       2017-10-19 16:02:07 +08:00
    @onevcat 喵神,国内情况不一样吧。维护的项目都是 OC,跟公司提过要不要转 swift。公司不想弄那个。
    xayoung
        24
    xayoung  
       2017-10-19 16:06:12 +08:00
    写惯 swift 完全不想写 oc
    kmyzzy
        25
    kmyzzy  
       2017-10-19 16:07:46 +08:00
    OC 这种奇葩语言永远不想再用
    my101du
        26
    my101du  
       2017-10-19 16:13:06 +08:00 via Android
    请问为何弃坑 React Native ?
    onevcat
        27
    onevcat  
       2017-10-19 16:15:37 +08:00
    @deyu 我觉得挺稳定的啊~核心思想,编码方式其实这几年都没有重大变化。

    语法细节具体实现什么的,和其他世间万物一样,无时无刻不在变化嘛~ 而且,代码写出来不就是为了改的么~
    onevcat
        28
    onevcat  
       2017-10-19 16:16:24 +08:00
    @creayningy 要多争取啊,比起 OC 来,用 Swift 的幸福感还是很强的~
    jtsai
        29
    jtsai  
    OP
       2017-10-19 16:21:09 +08:00   ❤️ 1
    @my101du 版本和组件太分散了,花在填坑的时间比较多,意志薄弱,坚持不下去。之前研究过安卓,就是 rn 和 iOS 选一个。
    DingSoung
        30
    DingSoung  
       2017-10-19 16:22:44 +08:00
    两个都得会啊 这都是基础

    建议模块化的,独立的,基础功能类库用 Swift 写,
    页面,业务的,工程,用到第三方库等页面等用 OC
    DingSoung
        31
    DingSoung  
       2017-10-19 16:25:17 +08:00
    我是 Swift 刚出来就一直在用,确实坑过。

    也写过 Swift 的工程,结果实际上还是需要用到很多第三方 OC 的库,很麻烦。
    所以我现在,只要是自己写的模块,独立的,底层的,抽象的全都优先用 Swift, 其他需要应对各种变化,具体的,用 OC
    xlw92
        32
    xlw92  
       2017-10-19 16:30:22 +08:00
    oc 的项目引入了 swift 模块然后编译很慢,而且稍微改动就要全部重新编译。
    LINAICAI
        33
    LINAICAI  
       2017-10-19 17:13:26 +08:00
    依然还是 OC 主流,没啥好说
    zj299792458
        34
    zj299792458  
       2017-10-19 17:17:05 +08:00
    oc,因为要对接 c 库,用 swift 还得 oc 绕一层
    nicevar
        35
    nicevar  
       2017-10-19 17:27:30 +08:00
    光会 RN 没啥用,自己做点小应用还行,一般的公司不会招这种的,项目中需要用到 OC 和 Swift 的库你这不会还怎么搞,而且很多开源库 bug 不少,拿来用不仅仅是用,还需要你会填坑,所以只会 RN 可能自己觉得只有两样不会,OC 和 swift,到别人眼里估计就是这也不会那也不会
    cabbages
        36
    cabbages  
       2017-10-19 19:09:47 +08:00
    这几年, 我新学会了 4 门语言, Swift1.2, Swift2.0, Swift3.0, Swift4.0😄
    devjoe
        37
    devjoe  
       2017-10-19 19:12:20 +08:00 via iPhone
    当时是 Swift,公司全部 Swift 项目。
    dorentus
        38
    dorentus  
       2017-10-19 19:20:48 +08:00 via iPhone
    @zj299792458 swift 可以直接和 C 交互的
    hebwjb
        39
    hebwjb  
       2017-10-19 20:31:54 +08:00
    我在跟着 raywenderlich 和 cs193p 自学,教程都是 swift 的
    管他国内公司招人是 OC 还是 swift 呢,我先学了自己搞个 APP 再说
    beimenjun
        40
    beimenjun  
       2017-10-19 21:07:22 +08:00
    Swift 菜鸡冒出头说一下,Swift 感觉比 Objective-C 要有趣些。
    icyalala
        41
    icyalala  
       2017-10-19 21:57:43 +08:00
    "事情正在起变化"
    zhaidoudou123
        42
    zhaidoudou123  
       2017-10-20 01:10:58 +08:00
    作为一个新手,自己写的都是用 Swift,OC 很多地方的括号看着就烦
    sammo
        43
    sammo  
       2017-10-20 06:17:24 +08:00 via iPhone
    objc 不被淘汰是有它的理由的 ...
    dong3580
        44
    dong3580  
       2017-10-20 07:17:00 +08:00 via Android
    @nicevar
    确实这样,用 rn 写了一些,总感觉缺东西,与原生相差不是一般的大,
    superkeke
        45
    superkeke  
       2017-10-20 08:38:35 +08:00
    Swift 不错,无奈 Xcode 太烂
    flyico
        46
    flyico  
       2017-10-20 08:51:13 +08:00
    我记得苹果当初推 swift 不是为了取代 OC 而是为了降低开发者的门槛 毕竟 OC 那语法初次见了都不习惯
    gggxxxx
        47
    gggxxxx  
       2017-10-20 10:12:43 +08:00   ❤️ 1
    OC 的地位是无法取代的。
    以前的众多成熟 oc 代码没有人会无聊到用 swift 重写。swift 尴尬在于
    1. 语法门槛高,细节繁琐,反而没有 oc 入门轻松。
    2. 无法直接对接 c++,obj-c++笑而不语
    3. swift 到今天都无法稳定下来。很多时候直接用 oc 写代码省去很多烦恼。
    xsown
        48
    xsown  
       2017-10-20 11:20:25 +08:00
    @superkeke 试试 AppCode,最新的 eap 版本还不错
    zvving
        49
    zvving  
       2017-10-20 12:23:49 +08:00
    swift 招人不是太大问题,刚好是个门槛。
    feikaras
        50
    feikaras  
       2017-10-20 13:11:00 +08:00
    @zvving 培训班大量输出 swift 的哪里门槛了。反倒是不能两者都会的才是问题。
    @flyico swift 也不是降低门槛用的,而是 oc 太老了,一点都不现代。
    cookiezby
        51
    cookiezby  
       2017-10-20 15:15:06 +08:00
    感觉 11 区大多数互联网公司要么都是 Swift,要么在迁移至 Swift 的路上, 架构大部分是 MVVM,RxSwift 居多,ReactiveSwift 少一些。
    deyu
        52
    deyu  
       2017-10-20 15:21:33 +08:00
    @onevcat 哈哈哈好的,受教~
    acumen
        53
    acumen  
       2017-10-20 17:03:00 +08:00 via iPhone
    公司一个项目是 oc,去年开始的项目是 swift。虽然从项目体量上 oc 大很多,从 crash log 来看总感觉 swift 更安全一些,从写代码角度来看也是如此,一些 nil 值判断更好一些。

    个人愚见
    feosun
        54
    feosun  
       2017-10-20 23:12:35 +08:00
    可以看看我写的文章:使用 Swift 语言编程的优缺点

    http://blog.csdn.net/feosun/article/details/76619327
    zj299792458
        55
    zj299792458  
       2017-10-20 23:46:31 +08:00 via iPhone
    @dorentus 据我所知都是需要 Objective c bridge header 重新声明接口才能交互,如果有对象指针转换还要处理好是否让 ARC 接管释放,__retain__bridge 还是__unretain,不知你是如何直接调用的,通过系统命令行?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   990 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 22:45 · PVG 06:45 · LAX 14:45 · JFK 17:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.