Swift5之开篇

Swift5之开篇,第1张

开始学习Swift5,记录一下学习的内容。

昨天开始看apple的文档,感受了下SwiftUI,SwiftUI5的功能确实简单易用。但是感觉使用SwiftUI前还是应该把Swift本身语法搞搞清楚。

想学语法就遇到第一个问题,似乎没有经典的console应用程序选项。之后看到Playgrounds项目可以实现REPL,但新建项目后在缺省显示的内容中,无论如何也显示不出来,后来加了一个Page后,REPL才可以使用。所以可见REPL只有在xcplaygroundpage文件上才可以使用。

可以使用REPL了,那之后就可以尝试swift的其他语法了。

苹果在2014年的WWDC上推出了新的编程语言Swift,自第一个版本以来一直影响用户的Swift的一个重要问题是它的应用程序二进制接口不稳定。这意味着Apple不能在 *** 作系统中包含Swift语言支持,因为使用Swift 3编写的应用程序将不能与Swift 4的语言支持二进制文件一起使用。所以解决方案是从App Store下载的app中的语言库直接包含Swift语言,但这增加了应用程序所需的带宽和存储空间。

根据外媒的报道,这一情况将得到改变。

苹果即将推出的Swift 5版本,该语言变为二进制兼容。新版本包含在iOS 122,tvOS 122,watchOS 52和macOS 10144中,所有这些版本目前都处于开发者测试阶段。这意味着,当新版本的Apple *** 作系统可供用户使用时,使用Swift 5发布到App Store的应用程序对于运行新 *** 作系统的用户来说将要小得多。

另一个好处是更快的启动时间,因为应用程序使用的每个动态库都会稍微增加其启动时间,但 *** 作系统附带的库会缓存在内存中并在所有应用程序之间共享。与Swift相关的限制将在一次更新中一夜之间消除。

在Swift中, 编译器不再支持预处理指令。作为替代,它使用编译时的属性和build配置

在 Xcode 中 Build Setting 界面, 搜索 flags , 最下面就是

我们可以通过在不同的环境下设置不同的 Tag , 来控制版本

可以使用 #if 判定build的参数动态编译

自定义Log

还有一种方式实现版本管理就是通过切换不同的Target 这里在参考中有详解

在 腾讯Bugly官网 登录账号, 注册应用 获取到AppKey

在 文档中心 , 查看具体使用

先讲讲Object-C的方案

那怎么分析呢

小节:

在Swift中怎么拦截crash, 避免程序崩溃呢

目前除了调用 try-catch 方法, 并无其他比较好的解决方案, 但是这也是只能拦截 Foundation 框架里面的 NSArray , NSString 这种类型的 并不能处理Array, String这种结构体

既然写到这里, 推荐一个大佬写的 Swift 框架 GodEye , 里面有一个 CrashEye , 就是通过NSSetUncaughtExceptionHandler 和 signal(SIGABRT, SignalHandler), 来处理异常, 但是无法避免崩溃, 具体我在 iOS崩溃日志 里有提到

参考

最详细 Xcode的Targets管理项目的公开版本、测试版本、预发布版本等等

OC版LSSafeProtector

Swift版CrashEye

以上就是关于Swift5之开篇全部的内容,包括:Swift5之开篇、苹果将推Swift 5:应用更小 启动更快、Swift 关于Crash的一些看法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10074680.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存