V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
aliehuhu
V2EX  ›  程序员

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

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

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

    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 ?
    GTim
        5
    GTim  
       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 吃饭,请三思吧
    janus77
        8
    janus77  
       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 个人爱好用,不是工作。
    kzfile
        12
    kzfile  
       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
    @XOXO360 😂
    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   ·   实用小工具   ·   2596 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:07 · PVG 23:07 · LAX 07:07 · JFK 10:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.