我应该知道今天使用 Swift 的 Objective-C [关闭]
Posted
技术标签:
【中文标题】我应该知道今天使用 Swift 的 Objective-C [关闭]【英文标题】:Should I know Objective-C to use Swift today [closed] 【发布时间】:2014-06-04 10:16:32 【问题描述】:我想尝试将 ios 开发作为我的宠物项目。 我没有 Objective-C 经验。并使用 Python 作为我工作的主要语言。 今天可以只使用swift吗? 我也可以用 swift 使用第三方的 Objective-C 包吗?
【问题讨论】:
唯一存在的问题是支持 Swift 的工具链仍在 NDA 之下。 【参考方案1】:是的,您可以在不了解 Objective-C 的情况下使用 Swift 开发 iOS 应用程序。 Swift 语言本身的学习曲线并不陡峭,但对 SDK 的理解肯定会对之前使用 Obj-C 为 iOS 开发的人有所帮助。但是您可以随时学习 Cocoa Touch 框架,并且可以轻松地将大量 Objective-C iOS 教程翻译成 Swift。
您还可以在 Swift 中使用第三方 Obj-C 库。只要你导入一个 Obj-C 文件或在你的 Swift 项目中创建一个,Xcode 就会为你创建一个桥接头。在这个文件中,你应该#import
所有你希望对 Swift 文件可见的 Objective-C 头文件。
【讨论】:
错了。您可以将它用于 iOS 或 OS X。 我在回答的哪一部分中建议您不能将它用于 OS X? 我说,“你只能使用 Swift”,明确回答了 OP,即你不需要 Objective-C 天哪,我明白你的意思了。但如果没有声调,这是一个非常不清楚的句子。它可以很容易地理解为只有 swift 可以用于 iOS。或者swift只能用于iOS。 除非您编辑,否则无法更改我的投票。【参考方案2】:在学习使用 Swift 编程之前,无需了解 Objective-C。
在秋季 Xcode 6 正式发布之前,使用 Swift 编写的应用程序无法提交到 App Store,但在此期间您可以随意玩转。
在 iBook 商店(免费)上查看“The Swift Programming Language”以获取有关该语言的更多信息。
【讨论】:
【参考方案3】:IMO,唯一的问题是向后兼容性。目前,已知 Swift 支持 iOS7+。 (嗯,这可以稍后扩展)无论如何,我相信这对你的宠物项目来说不是问题。
Swift 与 Objective-C 共享运行时和所有框架(库)。您无需担心 Swift 上的功能可用性。所有纯(这意味着没有 C/C+ 魔法)Objective-C 的东西都有望在 Swift 上可用。我认为我们几乎可以将 Swift 视为重新语法化的 Objective-C。
相反的情况可能有问题。不是所有的 Swift 特性都在 Objective-C 中可用,那么一些 Swift 程序在 Objective-C 端可能不可用。
引用自Apple website:
将 Swift 导入 Objective-C 的模型类似于 用于将 Objective-C 导入 Swift。 Swift 提供它的 API——比如 作为一个框架——作为 Swift 模块。除了这些 Swift 模块 是生成的 Objective-C 头文件。这些标头提供的 API 可以映射回Objective-C。 一些 Swift API 不会映射回 Objective-C,因为它们利用了不是 在 Objective-C 中可用。 有关在中使用 Swift 的更多信息 Objective-C,在同一个项目中查看 Swift 和 Objective-C。
【讨论】:
【参考方案4】:是的,您只能使用 Swift 开始开发。您可以使用 swift 安全地添加第三方 Obj-C 包。
【讨论】:
以上是关于我应该知道今天使用 Swift 的 Objective-C [关闭]的主要内容,如果未能解决你的问题,请参考以下文章