• 今年WWDC之后,相信大家都已经更新到iOS10和Xcode8.0beta版本尝鲜了,其中包括SiriKit、的语音识别框架SFSpeechRecognizer、通知框架(UserNotifications.framework、UserNotificationsUI.framework)等等都等待着...

    如何快速将Swift2.0的项目过渡到Swift3.0

          今年WWDC之后,相信大家都已经更新到iOS10和Xcode8.0beta版本尝鲜了,其中包括SiriKit、新的语音识别框架SFSpeechRecognizer、通知框架(UserNotifications.framework、UserNotificationsUI.framework)等等都等待着我们去探索和发现呢!大笑

            我个人认为最先接触的必然是Swift3.0语法的变化了,想当初我们手把手用Swift2.0撸出的项目,后续必然会过渡到Swift3.0中,难道我们又要一行一行的去修改代码吗?想想就不开心大哭,下面介绍较快的方法吧项目过渡到Swift3.0中。

    准备好Xcode8.0Beta,将我们之前的项目用Xcode8.0打开。打开之后Xcode会有一个提示下面我们跟着截图一起走吧。

    1、这个提示是说:你的项目包含早期版本的Swift代码,询问你是否更新到Swift3


    2、点击next

    3、选择Swift3


    4、这里选择我们需要更新代码的Targets


    5、耐心等待


    6、点击Save保存


    在上面这张图中我们便可以清楚的看到Swift语法的变化,左边是最新的语法,右边是之前的语法版本

    当然通过上面的操作只能把绝大部分的语法修改过来,但是有一些部分的代码需要我们根据自己的实际情况去修改它才能完全过渡到Swift3中。

    比如:1、类似i++这样的代码需要手动修改为i += 1

       2、第三方的OC库,调用也可能发生一点点的改变,手动修改(高德地图)

       3、使用了C语言风格的for循环也需要自己修改

       ......自己去探索吧小伙伴大笑

    总结Swift3中语法详细的变化参考文章:https://gold.xitu.io/entry/576bd4595bbb500059463426

    一篇讲解Swift3.0变化的英文网站(个人感觉很不错):https://www.raywenderlich.com/135655/whats-new-swift-3

    补:总结Swift语法变化的好文章 http://tech.glowing.com/cn/swift3/

    适配 Swift 3 的一点小经验和坑:https://imtx.me/archives/2064.html




    展开全文
  • 一个 XCode 插件,可以将 OC 代码转换成 Swift.zip,An Xcode Plugin to convert Objective-C to Swift
  • 1.删除Main.storyboard,SceneDelegate.swift和ViewController.swift文件。 2.在Info.plist文件中删除Main storyboard file base name属性和Application Scene Manifest属性。 3.创建简单首页:HomeViewController....

    作为老iOS程序猿,受不了xid和storyboard页面的大文件,布局麻烦,更喜欢纯代码页面简单灵活,动态修改。开始学习swift了,还是喜欢纯代码页面。并且由于我们程序猿的强迫症,也想第一个页面也是纯代码页面。
    经过实践,通过XCode11.2.1创建的swift工程,Launch Screen File不能是原来的LaunchImage.launchimage。那只好采用默认的LaunchScreen.storyboard(LaunchScreen.xib应该也可以)。
    想做成首页是纯页面:
    1.删除Main.storyboard,SceneDelegate.swift和ViewController.swift文件。
    2.在Info.plist文件中删除Main storyboard file base name属性和Application Scene Manifest属性。
    3.创建简单首页:HomeViewController.swift。
    4.在AppDelegate.swift文件的didFinishLaunchingWithOptions函数中增加页面代码:

            self.window = UIWindow.init(frame: UIScreen.main.bounds)
    
            let login = UINavigationController.init(rootViewController: HomeViewController())
    
            self.window?.rootViewController = login
            self.window?.backgroundColor = UIColor.white
    
            self.window?.makeKeyAndVisible()
    

    5.注释下面的函数:

    //    func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
    //        // Called when a new scene session is being created.
    //        // Use this method to select a configuration to create the new scene with.
    //        return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
    //    }
    //
    //    func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
    //        // Called when the user discards a scene session.
    //        // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
    //        // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
    //    }
    

    我就是因为没有把他们报错,瞎折腾了好久。
    6.当然在Targets->Build Settings->Swift Language Version设置为Swift5。
    工程代码

    展开全文
  • 1. 退出 Xcode 2. 重启电脑 3. 找到 这个 DerivedData 文件夹 删除 (路径: ~/Library/Developer/Xcode/DerivedData) 4. 删除这个 com.apple.dt.Xcode 文件 (路径: ~/Library/Caches/com.apple.dt.Xcode) 5. 运行...

    1. 退出 Xcode

    2. 重启电脑

    3. 找到 这个 DerivedData 文件夹 删除 (路径: ~/Library/Developer/Xcode/DerivedData)

    4. 删除这个 com.apple.dt.Xcode 文件 (路径: ~/Library/Caches/com.apple.dt.Xcode)

    5. 运行 Xcode  就好了~~

     

    如果以上还不能解决问题,那么在preferences中,把这些钩去掉,之后再重新钩上~

    展开全文
  • Xcode 添加自定义代码块 自定义代码块可以提高编写代码的效率,包括一些常用的函数或者API,都能很快的打出来。 现以添加快捷注释为例: 1.在代码中写入 //MARK: &lt;#注释#&gt; ==注释== 2.将代码拖...


    Xcode 添加自定义代码块

    自定义代码块可以提高编写代码的效率,包括一些常用的函数或者API,都能很快的打出来。

    现以添加快捷注释为例:

    1.在代码中写入 //MARK: <#注释#>  ==注释==

    2.将代码拖入代码片

     

    3.添加相关设置

    设置应用平台场景语言快捷键的就可轻松添加代码块了

     

     

     

     

    展开全文
  • Xcode 11.4 正式版终于发布了,版本带来了很多的提升,同时也是引入了一些的bug。为了方便大家解决问题,我计划将语法方面的问题汇总到一篇文章中,方便大家查阅。 属性 类型检查现在更加精确。在许多情况下...
        

    Xcode 11.4 正式版终于发布了,新版本带来了很多的提升,同时也是引入了一些新的bug。为了方便大家解决问题,我计划将语法方面的问题汇总到一篇文章中,方便大家查阅。

    新属性

    • 类型检查现在更加精确。在许多情况下,与Xcode 11.3.1相比,此精度可使Xcode 11.4中大文件的代码完成速度提高1.2到1.6倍。

    • 现在,隐含成员的代码完成功能可用于不完整的字典文字和不完整的三元表达式。

    • 代码完成结果改善了类型信息。结果将在可能的情况下显示不透明的结果类型(例如某些视图),并保留类型别名。结果将不再显示不必要的父类型。例如

    import SwiftUI
    struct MyModifier: ViewModifier {
        body
    }
    

    当在MyModifier中完成body时,Xcode 11.4将提供body(content:Content)->some View。

    • 编译器现在支持本地函数,其默认参数从外部作用域捕获值
    func outer(x: Int) -> (Int, Int) {
        func inner(y: Int = x) -> Int {
            return y
        }
        
        return (inner(), inner(y: 0))
    }
    
    
    • 您可以调用声明 func callAsFunction 方法(如函数)的类型的值。调用语法是应用 func callAs函数方法的速记:
    struct Adder {
        var base: Int
    
        func callAsFunction(_ x: Int) -> Int {
          return x + base
        }
    }
    
    var adder = Adder(base: 3)
    adder(10) // returns 13, same as adder.callAsFunction(10)
    
    • 下标现在可以声明默认参数。
    struct Subscriptable {
        subscript(x: Int, y: Int = 0) {
          ...
        }
    }
    
    let s = Subscriptable()
    print(s[0])
    

    技术交流

    QQ:3365059189
    SwiftUI技术交流QQ群:518696470

    展开全文
  • Xcode8中使用Swift2.3

    2016-10-13 19:05:29
    Xcode8支持两个Swift版本:2.3和3.0 。 用Xcode8打开Swift2.3的项目时,会弹窗提示你是否需要自动转换代码Swift3.0 。 自动转换代码后,仍会有不少报错。 那么怎样让Swift2.3的项目在Xcode8上快速Run起来呢? ...
  • 你会问同一个Xcode项目中还会用不同版本的Swift?对!举个栗子:2年前你写了一个管理密码的App,最近你觉得有必要再写一个Today Widget插件用来便捷显示密码。之前的代码Swift版本是3.2(假设),而最新的Widget则...
  • Xcode 9 &amp; Xcode 8.3.# both versions supports Swift 3.2. If your existing project has default language Swift 3.2, then it will work in Xcode 9, with minor changes. But if your project has ...
  • 很奇怪,反正我只要在Xcode上写代码,第一次编译运行就是没效果,什么改动在运行一次写的代码才会显示出来,改个bug要运行2次,调整UI也要运行2次,烦得狠,不知道有没有同僚用Xcode11.1有这种情况?
  • oc代码直接转swift代码

    2020-07-12 23:30:21
    oc代码直接转swift代码,非常好用,绝对福利~更多精彩
  • Xcode 9 引入了 New Build System,可在 Xcode 9 的 File -> Project Settings... 中选择开启。 预编译 Bridging Headers 文件 对于 Swift 和 Objective-C 混合的项目,Swift 调用 Objective-C 时,需要建立一...
  • 1.自定义的快捷代码块存放路径:~/Library/Developer/Xcode/UserData/CodeSnippets可以拷贝相关文件直接复制到另一台电脑的相应文件夹中,完成自定义快捷代码块的拷贝2.系统自带快捷代码块存放路径:/Applications/...
  • git地址:Swift JSON 模型 只需要复制json 就可以转换为Swift 模型 JSONSwiftModel是一个Xcode插件,可以将json 转为模型 支持struct, class 所有值为可选 支持自定义遵循 和 import 如果图片不显示,请移步...
  • XCode8中的新建项目,默认的版本为Swift3.0,如果要使用2.3的话,需要使用兼容模式Build Settings -> Swift Compiler - Version -> Use Legacy Swift Language Version 然后设置其为 YES,然后你就可以使用 Swift...
  • 在这里,我们手把手教你学习Xcode7和Swift2语言!重点是一看就懂,一学就会! 本篇视频教程拥有115节课程,包含数据处理、常用插件、信用卡卡号识别、自动化测试、网络访问、多线程、ShareSDK社会化分享、Core...
  • 代码最常用的快捷键莫过于格式化代码了,最近玩Swift,百度上没有找到简单明了的内容,特意记录一下。 Control + I 自动调整缩进 可以选中相应的代码 或 Command + A全选后进行自动调整缩进,虽然只能调整缩进,...
  • 我今天用Mac升级了XCode到8.1,Swift版本应该到了swift3,按网上的demo写webview的例子,报一堆错,整了一天才搞定,不想其他人踩坑了! XCode8.1 ,swift3,WebView的正确打开方式是这样的: 创建应用 打开XCode,...
  • 原创Blog,转载请注明出处 ... 工欲善其事,必先利其器,强烈建议新手同学好好研究下XCode这个工具。比如Build Settings,Build Info Rules,Build Parse, Edit Scheme… 前言:这个Swift调试系列分为四篇 图形化界面
  • Xcode 相关配置,文件模板,代码片段
1 2 3 4 5 ... 20
收藏数 17,035
精华内容 6,814
关键字:

xcode老swift转新代码