0 基础学习 ios 开发,选 Swift 还是 Objective-C? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
aliehuhu
V2EX    程序员

0 基础学习 ios 开发,选 Swift 还是 Objective-C?

  •  
  •   aliehuhu 2018-12-30 18:18:16 +08:00 6055 次点击
    这是一个创建于 2556 天前的主题,其中的信息可能已经有所发展或是发生改变。

    只求学习简单快速入门,不求精通变高手。

    26 条回复    2018-12-31 20:09:47 +08:00
    lnim
        1
    lnim  
       2018-12-30 18:28:39 +08:00 via iPhone   1
    肯定 swift 呀,
    realityone
        2
    realityone  
       2018-12-30 18:46:45 +08:00   1
    你学了 swift 到头来还是要学 oc 的(
    tanranran
        3
    tanranran  
       2018-12-30 18:48:55 +08:00   1
    Objective-C
    shijingshijing
        4
    shijingshijing  
       2018-12-30 18:59:30 +08:00
    @realityone 为什么到头来还是要学 OC ?
    yemoluo
        5
    yemoluo  
       2018-12-30 19:11:15 +08:00   1
    swift

    虽然后期可能要回来学 OC, 但那都是你学会了之后的事

    推广一波 https://www.twle.cn/l/yufei/swift3/swift3-basic-index.html 就是版本有点老了,坑爹的 Swift,低一个版本会要命的
    hstdt
        6
    hstdt  
       2018-12-30 19:47:41 +08:00 via iPhone   1
    如果快速入门熟悉 iOS,那果断 swift
    KeepCoding
        7
    KeepCoding  
       2018-12-30 19:49:16 +08:00 via iPhone   1
    swift 吧,如果想要靠 iOS 吃饭,请三思吧
    rb6221
        8
    rb6221  
       2018-12-30 20:05:06 +08:00 via iPhone   1
    不可能只学一门的,无论兴趣还是混饭
    pheyer
        9
    pheyer  
       2018-12-30 20:25:30 +08:00   1
    swift 的解包蛋疼,还是老是升级大坑,找了网上的开源代码想运行看看效果,结果发现版本不对想骂娘,还是 OC 用得爽
    kingcos
        10
    kingcos  
       2018-12-30 20:34:40 +08:00 via iPhone
    你是想工作还是只是玩?
    aliehuhu
        11
    aliehuhu  
    OP
       2018-12-30 20:41:02 +08:00
    @kingcos 个人爱好用,不是工作。
    penisulaS
        12
    penisulaS  
       2018-12-30 20:42:44 +08:00
    不试试 flutter 吗
    Panway
        13
    Panway  
       2018-12-30 21:09:34 +08:00   1
    OC 比较成熟,各种第三方库各种 hack,Swift 比较现代,如果只是爱好的话当然用新不用旧,因为语言只是一种调用苹果 API 或者实现某种功能的形式,苹果的各种框架里面的方法名绝大部分都是一样的。如果想深入研究的话,两者都是要学的,因为如果你是一个 OCer,碰到一个优秀的 Swift 库,但是不会改代码的时候是很烦的,反之一样
    stephenliubp
        14
    stephenliubp  
       2018-12-30 21:22:03 +08:00   1
    OC
    shawndev
        15
    shawndev  
       2018-12-30 21:53:34 +08:00   1
    swift
    XOXO360
        16
    XOXO360  
       2018-12-30 22:19:04 +08:00 via iPhone
    你最后还是学 h5 ……前端 vue
    kooze
        17
    kooze  
       2018-12-31 00:38:48 +08:00   1
    Swift
    luopengfei14
        18
    luopengfei14  
       2018-12-31 00:58:30 +08:00 via iPhone
    kingcos
        19
    kingcos  
       2018-12-31 09:41:59 +08:00 via iPhone
    Flutter 吧…
    tanpengsccd
        20
    tanpengsccd  
       2018-12-31 12:22:01 +08:00 via iPhone   1
    学 swift。oc 几乎忘了
    SeanYan
        21
    SeanYan  
       2018-12-31 12:53:12 +08:00
    哈哈 学 H5 就过分了啊
    everwanna
        22
    everwanna  
       2018-12-31 13:33:59 +08:00 via Android   1
    学 swift,现代语言的优势巨大,缺点就是还不够稳定。不是程序不稳定,是运行时,就是楼上说到过的旧版本跑不了,明年 swift5 推出后就基本稳定了。
    oc 不需要仔细学,实在需要的时候能够大致看懂语法就够了,乐观预计 2020 年基本可以不用看 oc 了
    stephenliubp
        23
    stephenliubp  
       2018-12-31 15:02:56 +08:00   1
    目前几乎大厂都是 OC,新人学习的话可以先学学 Swift 开始做项目,让你有成就感、满足感可以看到自己作出东西。蛮多东西东西、三方库都是用 OC 写的,但是可以桥接实现调用。然后蛮多东西 RunLoop、Runtime 都是有 OC 源代码,中高级进阶就需要读读源代码。
    另外一个大方向就是「无线端」,多端融合、快速修复、热更新等能力。几个关键词 Hybird、React Native、Flutter 等可以去研究。
    然后大前端走路要远的话可能需要“了解下” Web 前端开发。说不定某个功能模块就是 H5 写的,Native 提供一个 Webview 容器,但是 JS 需要访问硬件能力,这时候就需要 Native 配合,你甚至需要调试 H5 在 Webview 上的表现,或者 JS 注入... 。等你对前端也有一定的掌握,也就是大前端专家了。
    sangmong
        24
    sangmong  
       2018-12-31 15:16:53 +08:00
    Javascript
    KgM4gLtF0shViDH3
        25
    KgM4gLtF0shViDH3  
       2018-12-31 15:52:08 +08:00 via iPhone
    做着玩玩当然是 flutter
    vincentxue
        26
    vincentxue  
       2018-12-31 20:09:47 +08:00 via iPhone   3
    我做很多年 iOS 了,我给你分析一下。

    OC:
    1. 简单。语法层面 OC 比 Swift 简单太多了。如果有类 C 语言的基础,很快就能上手。有本黄皮书叫 Objective-C 编程,这本书对 OC 讲的非常好,基本上囊括了所有特性(不知道有没有数组字典字面量,nullable 等特性,很多年前的书了)。你一天就能学完。
    2. 没有兼容性问题,网上教程上的代码拿来就能运行。
    3. 由于提供了非常丰富的运行时 API,你可以控制的东西非常多,有很强的代码控制力,这点在 Swift 上要弱化不少。

    Swift:
    1. 语法特性非常多,非常现代的语言。学习周期会比 OC 长。有时候还能遇到编译器 bug,有时候代码自动提示会失效等等,新手能把你折腾半死。
    2. 有兼容性问题,ABI 还没达到稳定。每个版本更新都会带来语法变化,虽然变化越来越少了,但以前有很多是 Swift 写的,最新的 Xcode 已经不支持,你运行起来会有困难。但现在最新的教程基本上都是 Swift 写的,你学 OC 看着也可能有点吃力。
    3. 服务端可以干爆 OC,由于 Swift 开源、跨平台等特性的存在,自然就出现了 Server Side Swift,你可以用 Swift 开发服务端程序,并且性能很好,这一点在 OC 上很难得到应用和发展。

    总的来说,你要掌握的是 iOS 的 API,语言语法层面只是小问题。你不可能只学一个,早晚都要学另一个。只要你掌握了 API 之后,学另一个跟玩儿似的。所以你直接挑一个你喜欢的学就好了。但是记住要用代码构建 UI,少用或不用 Story Board,Xib。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3004 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 13:13 PVG 21:13 LAX 05:13 JFK 08:13
    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