首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

玩转 Xcode Playground(下)

辅助代码与资源 Xcode Playground 结构及文件添加 Xcode Playground 项目并不依赖项目配置文件,Page、辅助代码、资源文件、调用权限等均通过.playground目录结构来进行管理...进一步查看 .xcplaygroundpage 内容,可以看到各自拥有一个 Contents.swift(Page 代码文件)。...确有为单个 Page 添加资源需求,可以在 Xcode 或 finder 上添加好后,再于 Swift Playground 中打开。...如何在多个 Page 之间导航 在多 Page 状况下,可以在 Page 代码中,通过标注实现在各个 Page 之间导航。 前后导航 下面的代码可实现按导航栏顺序前后跳转。...不过只能执行一个项目中代码(但是可以执行另一个项目中依赖代码)。

1.7K30

Xcode添加 Swift package 依赖

Xcode带有内置依赖管理器,称为 Swift Package Manager(SPM)。您可以告诉 Xcode 在线存储某些代码URL,然后它将为您下载。...这为Swift Sequence类型(Array,Set,Dictionary甚至是range都符合)添加了一个小扩展,它可以同时提取许多随机。...无论如何,第一步是将添加到我们目中:转到 File 菜单,然后选择 Swift Packages > Add Package Dependency。...如果开发人员正确遵循 SemVer,则他们应该: 只要不破坏任何API或添加功能,就可以在修复错误时更改补丁号。 当他们添加不会破坏任何API功能时,请更改次版本号。 更改API时更改版本号。...无论如何,我们已经完成了打包工作,因此请单击“完成”以使Xcode将其添加到项目中。您应该看到它出现在项目导航器Swift Package Dependencies”下。

6.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

Swift asyncawait

代码比较难阅读。与结构化并发相比,对执行顺序推理并不那么容易。 需要使用弱引用weak references来避免循环引用。 实现者需要对结果进行切换以获得结果。...要做到这一点,你需要调整可用标记,如下所示: @available(*, deprecated, renamed: "fetchImages()") 你可以在我文章如何在Swift中使用#available...你可以在整个项目中逐步改变你实现,并使用Xcode中提供修复按钮来自动转换你代码以利用新实现。...可以通过使属性可变或将结构体更改为引用类型()来修复此错误。 async-await 将是Result枚举终点吗? 我们已经看到,异步方法取代了利用闭回调异步方法。...不再需要完成闭,而在彼此之后调用多个异步方法可读性也大大增强。一些新错误类型可能会发生,通过确保异步方法是从支持并发函数中调用,同时不改变任何不可变引用,这些错误将可以得到解决。

3.4K30

WWV 2018年十大必看视频

有最新API视频,ARKit 2,Core ML 2,Create ML和Siri Shortcuts; 通过新Dark Mode支持和改进源代码编辑覆盖Xcode 10; 然后是Swift 4.2...他还强调了如何在目中支持自己框架。使用Xcode工作区,您可以导入自己框架并添加一个操场来使用它们。 Playgrounds不仅仅是为了好玩。...Xcode 10括使用并行化构建过程能力,并且还为构建时间添加了详细测量。他解释了如何处理项目和依赖可以消除构建中复杂性。...您可以将脚本放入正文或创建对项目中另一个脚本引用。例如,如果将脚本放入外部文件中,则在Xcode 10“文件列表”中,它是只读,不会被编译。您输出文件也可以放在文件列表中。...如果你有依赖循环,Xcode 10现在将报告并产生错误,在你目中可能存在循环依赖引用。 关于构建时间测量也是新。内联任务将显示个人时间。专业提示:查看“最近”过滤器以查看先前构建中内容。

2.7K20

WWDC 2018年十大视频评论

有最新API视频,ARKit 2,Core ML 2,Create ML和Siri Shortcuts; 通过新Dark Mode支持和改进源代码编辑覆盖Xcode 10; 然后是Swift 4.2...TJ Usiyan概述了更高级Playground功能。特别是,新自定义游乐场显示转换器允许您在实时REPL类似的结果内联视图中显示您自己自定义值。他还强调了如何在目中支持自己框架。...Jordan Rose介绍了如何优化Swift代码和混合源代码以加快编译速度。Xcode 10括使用并行化构建过程能力,并且还为构建时间添加了详细测量。...您可以将脚本放入正文或创建对项目中另一个脚本引用。例如,如果将脚本放入外部文件中,则在Xcode 10“文件列表”中,它是只读,不会被编译。您输出文件也可以放在文件列表中。...如果你有依赖循环,Xcode 10现在将报告并产生错误,在你目中可能存在循环依赖引用。 关于构建时间测量也是新。内联任务将显示个人时间。专业提示:查看“最近”过滤器以查看先前构建中内容。

3.3K20

iOS工程师必看 20 道 面试题

(class)和结构体(struct)有什么区别? Swift 中,引用类型,结构体是值类型。值类型在传递和赋值时将进行复制,而引用类型则只会使用引用对象一个"指向"。...其修饰和方法可以在任意 Module 中被访问和重写;它是 Swift 3 中新添加访问权限。 Public 权限仅次于 Open。...在Swift和Objective-C混编项目中,如何在Swift文件中调用Objective-C文件中已经定义方法?如何在Objective-C文件中调用Swift文件中定义方法?...一般情况Xcode会在Swift目中第一次创建Objective-C文件时自动创建ProjectName-Bridging-Header.h文件。...,然后在协议扩展(protocol extension)中添加shake方法 分析这三种方法: 在自定义添加shake方法扩展性不好。

3.6K40

Swift 周报 第三十期

以上调整生效后,App Store Connect 中“我 App”“价格与销售范围”部分会随即更新。一既往,你可以随时更改你 App 和 App 内购买项目的价格 (包括自动续期订阅)。...但是,也没有理由人为地限制开发人员在函数中创建模型复杂性。一些代码库(值得注意是,Swift 编译器本身)使用带有嵌套类型大型闭,并且它们受益于使用协议抽象。...[11] 讨论如何在 swift-foundation 中正确地进行性能测试?...[12] 提问 我想对比一下swift-foundation 和 Xcode 自带 JSONDecoder 解码速度。...我在一个新项目中使用单元测试和 measureBlock 以及在 swift-foundation 中使用 JSONEncoderTests 对其进行了测试。

20720

在多目中统一管理资源

随着 SPM( Swift Package Manager ) 功能不断完善,越来越多开发者开始在他目中通过创建多个 Package 方式来分离功能、管理代码。...本文将介绍一种在拥有多个 SPM 目中,对资源进行统一管理方法。访问我博客 www.fatbobman.com[1] 可以获得更好阅读体验以及最新更新内容。...在 SPM 中,如果你为 Target 添加了至少一个资源,那么 Xcode 将会为你创建一段辅助代码( 该段代码并不包含在项目中,只在 Xcode 中起作用 ),生成一个指向该 Target Bundle...实践本节,我们将通过一个具体案例来演示如何在一个拥有多个 Xcode目中统一管理资源。可以在 此处[4]获得项目代码。...创建 Swift 过程迫使您采取良好和健康步骤来最终改进您项目,例如测试、API 设计、依赖注入、文档编写等等。

1.4K20

Swift MainActor 使用和主线程调度

如果你Xcode不支持,请升级到最新版本或者通过启用实验并发来工作。...您可以通过在 Xcode 构建设置中将以下值添加到“Other Swift Flags”中来实现: -Xfrontend -enable-experimental-concurrency 我们可以定义我们自己全局...一旦被定义,你就可以在整个项目中使用全局Actor,就像你对其他 Actor 一样: @SwiftLeeActor final class SwiftLeeFetcher { // .. } 如何在...如果一个没有父,父使用相同全局actor注释,或者父是NSObject,则只能使用全局actor进行注释。 全局 Actor 注释子类必须与同一个全局 Actor 隔离。...无论哪种方式,在这些情况下,将属性、方法、实例或闭定义为一个行为体是有意义,以确保任务在主线程上执行。

2.7K10

肘子 Swift 周报 #020 | 准备迎接 Swift 6 到来

自 2024 年 3 月 15 日起,将从分支中剥离出 release/6.0 分支,标志着 Swift 6 项目正式加速推进,预计将于今年下半年与新版 Xcode 同步发布。...为了确保代码能够充分利用 Swift 并发性最新特性,建议开发者尽早在项目中启用严格并发检查标志(SWIFT_STRICT_CONCURRENCY),为适配 Swift 6 做准备。...iOS 模拟器上针对受保护钥匙串启用生物识别认证提示。...由于 Secure Enclave 这一关键安全组件仅在实体设备上存在,用于执行指纹匹配等认证过程,其在模拟器中缺失意味着使用 kSecAttrAccessControl 属性保护钥匙串在模拟器上无法触发生物识别认证提示...本文由 Pol Piella 撰写,详细介绍了自定义 Core Data 迁移实现方法,包括创建映射模型文件和自定义迁移策略

17710

Swift asyncawait ——代码实例详解

执行数据请求 } 在如今 Swift 版本中,使用完成闭来定义方法仍然是可行,但它有一些缺点,async 却刚好可以解决。 你必须确保自己在每个可能退出方法中调用完成闭。...闭代码比较难阅读。与结构化并发相比,对执行顺序推理并不那么容易。 需要使用弱引用 weak references 来避免循环引用。 实现者需要对结果进行切换以获得结果。...你可以在整个项目中逐步改变你实现,并使用Xcode中提供修复按钮来自动转换你代码以利用新实现。...不过,我强烈建议逐步应用改变,因为它允许你隔离改变部分,使你更容易测试你改变是否预期那样工作。...可以通过使属性可变或将结构体更改为引用类型()来修复此错误。 枚举终点 async-await 将是Result枚举终点吗? 我们已经看到,异步方法取代了利用闭回调异步方法。

2.4K10

CocoaPods对三方库管理探究

xcconfig文件 xcconfig文件是Build Setting配置文件形式,它优先级大于XcodeBuild Setting。...另外两用于帮助我们在项目中查找三方库FRAMEWORK_SEARCH_PATHS和HEADER_SEARCH_PATHS也是在该文件内部定义,这些配置会体现到Build Settings里面: ?...这里是设置编译阶段配置地方,当首次pod install成功之后,这里会多几个[CP]开头配置(CP即CocoaPods缩写),它们都是由CocoPods添加脚本内容,执行顺序从上到下。...[CP] Copy Pods Resources 这个一般在以静态库引入三方库切里面包含资源的话会添加该脚本,其作用是将三方库资源文件拷贝至项目中。...Bundle、plist、png等资源 其他资源是会走到switch语句最后出口,进行资源路径赋值给$RESOURCES_TO_COPY,在后面的代码中通过rsync命令,将资源同步到构建目录。

2.7K20

iOS 优化 - 瘦身

目前就有这样一个工具 R.swift[4]一定意义上将资源变成强类型, 类似于 Android 开发中 R 文件。 可利用fdupes[5]查找项目中重复文件。...还有一些文本资源, json 文件、html 文件等,无法使用上述方式压缩,可以采用压缩成 zip 等压缩格式方式,可分为三步: 压缩阶段:在 Build Phase 中添加脚本,构建期间对白名单内文本文件做...这种方式性价比很高,改动一配置,就可能会带来收益,但是可能具有一定风险,需要谨慎。 下文中提到一些 Xcode 默认配置可能在低版本 Xcode 上不是默认配置,如果不是默认,可手动勾选。...Strip Style Strip Style 表示是我们需要去除符号类型选项,其分为三个选择: All Symbols: 去除所有符号,一般是在工程中开启; Non-Global Symbols...通过分析 Link Map,我们可以了解每个甚至每个方法占据了多少安装空间。

2.4K20

使用 Swift Package 插件生成代码

在我忘记了这件事一段时间后,Xcode 14公告允许在Xcode目中使用 Swift Package 插件,以及一些架构更改使提取类型信息变得容易得多,这让我有动力再次开始研究这个问题。...图片取自 Xcode Beta 2 版发布说明 在过去几周里,我一直在研究如何使用软件插件生成单元测试,在这篇文章中,我将解释我在向哪个方向尝试以及它涉及了什么。...实施细节 我开始了一任务,即创建一个构建工具插件,与 Xcode 14 引入命令插件不同,该插件可以任意运行并依赖用户输入,作为Swift软件构建过程一部分运行。...创建该插件 与可执行文件一样,必须向Package.swift添加.plugin目标,并且必须创建包含插件实现.swift文件(Plugins/SourceKitPlugin/SourceKitPlugin.swift...如果在测试目标的依赖中找不到合适目标,则使用Diagnostics API将错误转发回Xcode,并告诉它完成构建过程。 让我们看下结果 插件这就完成了!现在让我们在 Xcode 中运行它!

2.2K20

干货 | 一波N折携程酒店Swift-Objc混编实践

于是,我们迅速组织研发人力,对Swift开发在携程app内可行性展开了调研和实践。...既然Swift不能被Objective-C继承,那么最适合首先迁移还是那些底层工具代码,同时为了让架构看上去更清晰,我们决定新建一个Swift库来管理所有迁移好Swift代码。...,: #import 就可以在Objc项目里引用Swift方法了,试了一下,在xcode里很顺利地跑了起来。...静态库问题全部得到解决,终于能让Swift模块可以愉快在objc项目中被随意使用了。...做到这里不禁会联想到目前携程app项目内头文件引用灾难,导致编译效率极其低下,其实是时候用module思路来重构一下我们项目了,当然这又会是一庞大工程。

1.4K31

成为一名优秀 Swift 开发人员 10 个小技巧

重构并提高可性 Xcode 11 对重构功能做了很大改进。新 Xcode 重构操作更加简洁,让我们可以很容易重命名引用和方法。我已不记得有多少次我认为一个名称是合适,而后来又决定修改。...在项目中集成最热门第三方库 尽量不要重新发明轮子。为项目选择正确库是一有意思工作,大多数情况下,使用基本库就正确做法。这可以让你专注于特定应用程序特定功能,而不是在常见功能上浪费时间。...我经常会用到以下库: HTTP 层:使用 Alamofire; 图像处理库:使用 Alamofire image 或 Kingfisher; 自动布局辅助库, Snapkit; UI 工具, HUD...但是 Swift 扩展可以轻松地将简单方法集成到通用上,而无需做任何复杂事情。...结论 我没有提到所有基本 OOP 原则。显然,您必须以正确方式实现,封装,抽象和设计模式。在本文中,我将重点更多地放在Swift功能上,以提高代码效率并传递Swift机制优点。

2.2K40

iOS开发中实现OC和Swift混编

版权声明:本文为博原创文章,未经博允许不得转载。...原有的项目都是使用OC写,既然要在原有项目中引入swift文件首先就要实现OC和swift混编设置。 混编设置: 在OC项目中创建一个swift文件时候首先Xcode会弹出一个提示框: ?...这时我们要选择“Create Bridging Header”,这样就会在项目中生成一个进行OC和swift桥接.h文件文件和我们要创建一个swift文件。...在项目中创建一个.h文件,文件名:“项目名称-Swift.h”,:OCAndSwift-Swift.h,创建完成之后我们在需要引入swift文件OC文件中引入这个.h文件,然后在工程中将此.h文件删除...如果在OC文件中无法使用此swift,我们只需command + shift + R一下即可。

2.6K41
领券