2017 年, ios 开发的主流语言还是 oc 吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jtsai
V2EX    iOS

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

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

    弃坑 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</span> <div class=
    很多公司的项目确实还在用 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  
    PRO
       2017-10-19 21:07:22 +08:00
    Swift 菜鸡冒出头说一下,Swift 感觉比 Objective-C 要有趣些。
    icyalala
        41
    icyalala  
       2017-10-19 21:57:43 +08:00
    "事情正在起变化"
    unneeded
        42
    unneeded  
       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     Solana     2640 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 11:34 PVG 19:34 LAX 03:34 JFK 06:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86