我应该知道今天使用 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 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用Swift 2编程从持久ID中查找歌曲

在Swift中禁用工具栏按钮

Swift:关闭 viewController 1 然后呈现 viewController 2

Swift 3 内容滑块

Swift 中的日期格式今天明天昨天

SqlDataAdapter 句柄错误 - 未创建对象