如何将我的 swift 1.2 项目迁移到 2.0?

2023-11-25

我有一个项目是在 swift 推出时开发的,但最近 Apple 推出了新版本的 swift 2.0 和 xCode 7.0。那么我如何将我的项目从 swift 1.2 迁移到 2.0 呢?


在新的 Xcode 7 beta 中,转到编辑菜单 -> 转换 -> 到最新的 Swift 语法

这将为您运行代码转换器并显示它将要进行的更改。这些是自动更改(例如将 println 更改为 print 等)。

然后重构代码以使其更像 Swift,这里有一些技巧:

  • 确保尽可能使用新的错误处理功能(代码转换工具大部分情况下都会执行此操作,但有时会出错)。

  • 在适当的情况下使用保护语句。通常使用它来减少缩进和嵌套 if 语句。如果使用得当的话,这些真的很好。

  • 几乎所有全局函数都可以重构为协议扩展。将通用函数移至扩展。

  • 当转换为类型或从类型转换时(例如 String -> NSData,反之亦然),请使用可失败的初始值设定项,并将参数作为要转换的类型,而不是在类型上拥有属性。所以而不是做someString.dataUsingEncoding(NSUTF8StringEncoding)做类似的事情NSData(someString, encoding: NSUTF8StringEncoding)。请注意,这不是 API 的实现方式,但我用它作为示例来展示如何变得更加“Swifty”。

  • 在有用的地方使用可用性检查。

  • 尽可能移动清理代码以推迟块。这可以帮助冗余重复的清理代码,例如文件关闭等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将我的 swift 1.2 项目迁移到 2.0? 的相关文章

  • 在 IOS 上使用 AVComposition 混合两个音频文件

    我正在尝试混合两个音频文件 将一个音频文件放在另一个音频文件之上 不是缝合在一起 但我在 IOS 上学习 AVFoundation 时遇到了困难 我在这里遵循了这个答案 如何使用 AVMutableCompositionTrack 合并音频
  • Swift Codable 将空 json 解码为 nil 或空对象

    这是我的代码 class LoginUserResponse Codable var result String var data LoginUserResponseData var mess String public class Log
  • Xcode 调试器 - 如何在 CPU 指令级别单步执行

    这绝对是令人着迷的 但我对编译器如何巧妙地将 C 代码转换为机器指令感到着迷 由于我对某些指令有点模糊 因此如果我能够在单个机器指令级别 低于 C 语句级别 可能会生成多个 CPU 指令 观察已编译程序的操作 将会很有帮助 换句话说 我可以
  • UIDocumentInteractionController 阻止“打开方式”表中的空投

    在我的应用程序中 我允许用户通过 Instagram 分享照片 这需要使用 UIDocumentInteractionController 如果手机支持 则会自动检测空投 如何将其从 打开方式 操作表中删除 即使我使用 UIActivity
  • Objective-c 中的块递归

    当执行涉及 Objective C 块的递归时 我在 iOS 应用程序中收到 EXC BAD ACCESS 信号 这是简化的代码 void problematicMethod FriendInfo friendInfo onComplete
  • 在带有 Storyboard 的 XCode 4 中以模态方式推送视图时,出现“对开始/结束外观转换的不平衡调用”警告

    在网上进行了一些研究但没有成功后 我来这里向您询问有关我的警告的问题 实际上 我有一个带有导航控制器的视图 V1 我想在 V1 完成加载时推送模态视图 V2 所以我用performSegueWithIdentifier方法 我正在使用故事板
  • 错误域=AVFoundationErrorDomain代码=-11814“无法记录”

    它不断给我错误 错误域 AVFoundationErrorDomain代码 11814 无法记录 我不确定问题是什么 我试图在拍照后计数器达到 1 时录制声音 static int counter counter will always b
  • iphone NSDate 转换问题

    在我的 facebook 图表 Api 中 我正在获取这些数据 来自杰森 updated time 2011 05 17T14 52 16 0000 我正在使用此代码将其转换为有效的日期格式 NSDateFormatter df NSDat
  • 检测 AvPlayer 何时切换比特率

    在我的应用程序中 我使用 AVPlayer 通过 HLS 协议读取一些流 m3u8 文件 我需要知道在流会话期间 客户端切换比特率多少次 我们假设客户端的带宽正在增加 因此客户端将切换到更高比特率的段 AVPlayer能检测到这个开关吗 T
  • SiriKit 错误:此应用程序不支持捐赠意图

    我在 Xcode 10 iOS 12 Beta 中捐赠自定义意图时遇到问题 我创建了一个在我的主应用程序目标和 OrderIntent 目标之间共享的自定义框架 我创建了一个 intentdefinition 文件 并将目标成员资格设置为我
  • 架构armv7的重复符号

    尝试在我现有的应用程序中使用 Layar SDK 时出现以下错误 我该如何解决这个问题 Ld Users pnawale Library Developer Xcode DerivedData hub afxxzaqisdfliwbzxbi
  • UICollectionView 拖放文件夹创建

    我正在使用 UICollectionView 创建 iOS 画廊应用程序 我希望用户能够拖放图像来重新排序图库并创建文件夹 类似于 iPhone 上的主屏幕 我发现了以下内容tutorial http nshint io blog 2015
  • Google 地图 API -> OpenGLES 崩溃

    日志是从 Crashlytics 粘贴的 对于许多用户来说 崩溃经常发生 据我所知 它与设备 iOS 版本无关 我在我的代码中找不到任何错误 这似乎是纯粹的库问题 是 Google 地图 API 错误吗 我可以做些什么来修复它 或者我应该在
  • 通过 Instruments 使用 UIAutomation 操作 iphone 时,什么是 UIATargetHasGoneAWOLException。

    我正在使用 UIAutomation 通过 Xcode 中的 Instruments 在 iPhone 上执行某些操作 但遇到了一个奇怪的异常 UIATargetHasGoneAWOLException 有人知道这个异常是什么意思吗 我发现
  • 为什么我的视图仍然以横向呈现?

    我的视图是由导航控制器控制的 因此我将导航控制器支持的方向设置为明确的纵向和纵向UpSideDown 这可以工作 但是如果调用视图时前一个视图处于横向状态 它将以横向方式呈现并保持横向状态 直到设备旋转 如何防止这种情况发生 这是我的代码
  • SKNode 上的 runAction 未完成

    我使用 NSOperation 子类来获取串行执行SKAction正如这个问题中所描述的 如何在 Swift 中子类化 NSOperation 以将 SKAction 对象排队以进行串行执行 https stackoverflow com
  • UIWebView Bug:-[UIWebView cut:]:无法识别的选择器发送到实例

    In the UIWebView 如果包含文本的输入元素具有焦点 并且按下按钮导致输入失去焦点 则随后双击输入以重新获得焦点并从出现的弹出栏中选择 剪切 或 复制 或 粘贴 会导致这UIWebView因错误而崩溃 UIWebView cut
  • init 中的 Swift 通用约束

    我有通用的 我希望能够用特定的约束来初始化它 约束仅用于初始化 班里的其他人并不关心 这是一个简化的示例 struct Generic
  • Swift 中的 UIAlert 自动消失?

    我有以下代码 Creates Alerts on screen for user func notifyUser title String message String gt Void let alert UIAlertController
  • RemoteIO 音频单元播放回调中的 AudioBufferList 内容

    我想 拦截 音频数据传送到 iOS 设备扬声器的过程 我相信这可以使用 RemoteIO 音频单元和回调来完成 在下面的playbackCallback中 ioData实际上包含任何音频数据吗 static OSStatus playbac

随机推荐

  • 如何对因素水平进行分组?

    我有一个包含足球位置缩写的因子列 大约有 17 个唯一值和 220 个观察值 我只想拥有包含 17 个唯一值的三个因子级别 levels nfldraft Pos lt list Linemen c C OG OT TE DT DE Sma
  • 如何将 Twitter Bootstrap 工具提示绑定到动态创建的元素?

    我正在使用带有 JavaScript 的 Twitter 引导工具提示 如下所示 a rel tooltip tooltip 我的标记如下所示 a title Not implemented class btn i class icon f
  • 如何使用 Playground 在 Swift 中读取数据并将其写入文本文件? [复制]

    这个问题在这里已经有答案了 我通读了这些SO链接来寻找答案 1 在 Swift 中逐行读取文件 URL 2 从文本文件中读取和写入数据 链接 2 为我提供了解决方案 但问题是目录 默认是当前项目的Document目录 所以如果我想从中读取文
  • XCode 6.3 警告:“myObject”地址不等于空指针的比较始终为 true

    更新到 XCode 6 3 后 编译器开始发出此警告 Comparison of address of myObject not equal to null pointer is always true 这是我的一段代码 挠头 但没有找到任
  • 为什么 quarto 的 pdf 输出中没有显示从属关系?

    In the yaml of a quarto我有的文件 title Hey author name Birdy Bird affiliations University of Birds University of Hummingbird
  • 用于在 iOS 中扫描条形码(代码 39 格式)的免费 SDK [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想使用 iphone ipad 的相机扫描 Code 39 格式的 VIN 条形码 我尝试了 zxing 和 zbar 但它们效果不佳 大多数时候
  • 应用程序未显示在最近使用的应用程序列表中

    每当我将以下代码放入活动的清单条目中时 我的应用程序永远不会显示在 最近使用的应用程序 列表中
  • 在 OS X 上调试 MacPorts GCC 的问题

    对于使用 GCC 4 7 MacPorts 构建编译的程序 我似乎无法获得可读的调试输出 我尝试过 GDB 6 3 和 GDB 7 3 每个都有自己的问题 尝试使用 GDB 7 3 MacPorts 使用 GDB 7 3 我在启动时得到以下
  • Spark - 读取带有引号的 csv 文件

    我有一个 CSV 文件 其中的数据包含在双引号 中 0001 A 001 2017 01 01 12 0001 B 002 2017 01 01 13 我只想读取纯数据 没有 符号 spark read option encoding en
  • Android Room 一对多关系

    我正在尝试建立一对多关系 我在线检查了各种文章和教程 但所有示例都显示一个表与另一个表具有一对多关系 在我的要求中 我有两个表与另一个表具有一对多关系 检查下图 学生表有来自班级和学校表的 FK 大多数示例通过班级 学生或学校 学生解释一对
  • 此表单不安全自动填充仅在 Chrome 中关闭

    I get this error when trying to fill the form from chrome in my website 这是我提交表格后的结果 这种情况在任何其他浏览器中都不会发生 我需要做什么才能确保表单安全 我已
  • glDrawArrays 与 glDrawElements

    好吧 我仍然在努力让它发挥作用 我的代码的重要部分是 def init self vertices normals triangles self bufferVertices glGenBuffersARB 1 glBindBufferAR
  • Android:跟踪鼠标指针移动

    假设我使用通用鼠标 是否可以在android中跟踪鼠标指针的X和Y坐标 你需要一个OnGenericMotionListener OnGenericMotion MotionEvent me if me getToolType 0 Moti
  • 如何在Python脚本运行时操作图形?

    介绍 因为我来自matlab 我习惯了交互式界面 其中脚本可以在运行时更新图形 在处理过程中 每个图形都可以调整大小甚至关闭 这可能意味着每个图形都在自己的线程中运行 这显然不是这样的绘图库 IPython可以使用magic命令模仿Matl
  • Laravel 无法在 404 错误页面查看用户是否登录

    我创建了一个自定义 404 错误页面 并使用 app layout 来包装它 但这很奇怪 因为当我收到 404 错误页面时 即使我已登录 也会看到登录和注册链接 这是为什么 update 当我登录我的页面并写入不存在的路由时 我得到带有扩展
  • 使用 OpenCV 和 Python 查找数独网格

    我正在尝试使用 OpenCV 检测数独谜题中的网格 但我在最后一步中遇到了麻烦 我猜 我正在做的是 对图像进行下采样 Blur it 应用高通滤波器 双边 使用自适应阈值对图像进行阈值处理 一些膨胀和腐蚀 所有这些给了我以下图像 从现在开始
  • 无法找到哈希字符串“android-25”的目标

    我有 Android Studio 2 2 我正在尝试打开一个项目 但收到错误 无法找到带有哈希字符串 android 25 的目标 在错误消息下方 我看到一个链接 安装缺少的平台和同步项目 如果我单击此链接 我会收到另一个错误 其中显示
  • 使用 VBA 将条件格式应用于一系列单元格

    我想知道如何访问条件格式中标题为 适用于 的列并输入我自己的条件 我提供了一个屏幕截图以供更好的参考 我在条件格式中添加语法的代码是 With Selection FormatConditions Delete FormatConditio
  • 如何解析 Zend URL 中的参数?

    我正在尝试从 ZF REST URL 中提取 GET 参数 这不是当前请求 我不想调用 URL 或执行路由 我只需要参数 我正在寻找像 parse url 这样的实用函数 但适用于 Zend REST 格式 有没有 或者我必须重新发明轮子
  • 如何将我的 swift 1.2 项目迁移到 2.0?

    我有一个项目是在 swift 推出时开发的 但最近 Apple 推出了新版本的 swift 2 0 和 xCode 7 0 那么我如何将我的项目从 swift 1 2 迁移到 2 0 呢 在新的 Xcode 7 beta 中 转到编辑菜单