Tag: Xcode 10

在Xcode中安装Swift 5工具链

苹果发布了Swift 5.0开发快照(工具链),供开发人员试用新语言。 在本文中,我将解释如何将Swift 5.0工具链与Xcode捆绑在一起。 根据Apple的定义, “ Xcode工具链( .xctoolchain )包括编译器,lldb以及其他相关工具的副本,这些副本可提供在特定版本的Swift中工作时提供凝聚力的开发经验。” 使用Xcode捆绑Swift 5工具链 从这里下载Swift 5.0快照。 (在撰写本文时,Swift 5.0可以作为开发快照使用。其他快照可以在此处找到:https://swift.org/download/#snapshots) 2.打开下载的软件包。 按照屏幕上的说明完成安装。 3.打开Xcode并导航到Xcode->首选项->组件。 在这里,您可以找到Mac上安装的所有工具链。 4.选择“ Swift 5.0快照” ,然后单击“关闭”。 恭喜你! 我们已经在Xcode中成功安装了Swift 5工具链。 谢谢阅读。 如果您有任何疑问,请随时询问! 在推特上关注我

如何在Xcode-Swift 4中以编程方式进行编码? 以编程方式创建新的故事板…。

自动布局是我们在iOS应用程序中布局UI的方式。 首先,以编程方式学习如何使用它可能会让人不知所措。 在本简介系列中,我们将介绍如何相对于其他项目轻松地将元素锚定到屏幕上。 在大多数情况下,Xcode会显示与主故事板上的约束有关的错误。 因此,最好使用锚点以编程方式进行编码。 让我们开始吧……….. 步骤1 :-打开Xcode,选择主故事板并将其删除…(移至回收站) 步骤2 :-现在,转到info.plist并删除“ Main Storyboard文件库名称”的键 步骤3 :-以编程方式构建我们的故事板。…转到App Delegate并编写以下代码… 在这里,我们创建了一个新窗口,其中引用了用户的物理设备。 “ makeKeyAndVisible()”->它将显示窗口并使其成为键窗口。 然后,我们借助“ RootViewController”将情节提要窗口连接到视图控制器。 现在,转到View Controller并编写一个小代码来测试我们最近创建的新窗口 在加载视图中,键入-> view?.backgroundColor = .blue 模拟器将显示窗口的蓝色背景………….. 做得好! 您刚刚以编程方式创建了一个新的故事板…

客场进球计算器

学习Swift 4和XCode和My First Solo iOS应用 我一直在关注伦敦App Brewery的Udemy iOS课程,到目前为止,我对此感到非常满意。 我已经了解了Swift 4的基础知识以及XCode 10的工作原理,但是离被雇用还有很长的路要走。 我所做的就是创建我的第一个iOS应用程序的起点。 它被称为“客场进球计算器”,它是一个简单的应用程序,可以在考虑客场进球规则的基础上,根据球队在两场比赛中的得分来计算球队是获胜,平局还是输局。 客队进球规则是一种方法,当球队在对方球队的主场进行两次比赛时,他们打破联盟足球和其他体育比赛的联系。 根据客场进球规则,如果进球数相等,则在“客场”得分更高的球队将获胜。 这是我之前亲自搜索过的一个应用程序,但未成功找到,因此我认为确定该应用程序并不难。 我开始在XCode Playgrounds中建立要使用的正确算法。 在测试了一个小时的不同算法之后,我制作了一个切实可行的算法。 下一步,将其放入XCode并设计应用程序以解决该问题。 这个阶段花费的时间比预期的要长得多,因为我是一个本质上的设计师,所有东西都必须完美地放置和着色。 这个应用程序经过了三种不同的设计,直到我确定了最终版本。 我知道,实际上,此版本的应用程序永远不会在App Store中出现。 它制作效率低下,并且有一些我不知道如何解决的愚蠢错误,而且我还没有了解约束和自动布局,因此仅在iPhone X或iPhone XS上看起来不错。 虽然这个程序是我的第一个独立构建的应用程序。 到目前为止,我只制作了属于教程或Udemy课程一部分的应用程序,从头到尾都牵着我的手。 从头到尾,Aways Goals Calculator是我自己的,代表了我学习的一个里程碑,随着我学到更多,它将逐渐发展成为最终产品。

如何在Xcode中将App Project添加到空工作区

版本: Xcode 10.1 级别:初学者 这是 如何在Xcode系列中设置工作区的第2部分。 第1部分:如何在Xcode中添加工作区 步骤1: 在AwesomeWorkspace已打开的情况下,选择文件->新建->项目。 在已经打开AwesomeWorkspace的情况下 ,这一点非常重要,我们将在步骤4中了解原因。 第2步: 在iOS部分下选择Single View App 第三步: 命名为AwesomeAppProject或任何您喜欢的名称。 步骤4: 选择包含AwesomeWorkspace的文件夹以保存AwesomeAppProject 。 请勿点击创建 。 从添加到下拉列表中选择AwesomeWorkspace选项。 注意: 只有在 步骤1中已经打开AwesomeWorkspace 时,才会显示“ 添加到” 下拉列表 步骤5: 请勿点击创建 。 从“ 组”下拉列表中选择“ AwesomeWorkspace”选项。 好的,现在点击create 。 添加到:将项目添加/链接到Xcode中的工作区容器中 组:将项目目录文件夹放在Finder的工作区目录中 这就是带有Single View App Project的Xcode工作区的样子。 这就是带有Single View App Project文件夹的工作区在Finder中的样子。

构建自定义的Xcode Instruments包,XML反击

他们说:“写不止一个” 不久前,我开始使用自定义Instruments软件包。 去年Apple WWDC 410会议之后,我感到很兴奋,并认为构建某个东西会很棒。 在上一篇文章中,我描述了整体程序包体系结构,开发工作流程中的一些陷阱以及在AppSpector中我们如何构建自定义程序包来跟踪SDK中的流量压缩。 在410会议上,Apple工程师说:在另一张幻灯片上“制造多个仪器”。 所以我想-为什么不呢? Instruments的自定义软件包是实现高度特定的调试流程的理想工具。 每个人都知道一个bug可以忍受多久,因为您不知道发生了什么。 一旦找到“观点”来解决问题,您就快完成了。 解决方法始终是大约10%,而找到正确的视角就是剩下的时间。 在思考软件包的一些想法时,我遇到了CossackLabs [1]的一篇很棒的文章,内容涉及开放跟踪框架及其实现。 可视化应用程序内部连续过程的想法看起来很适合作为一种工具。 这样的过程的完美示例是在不同视图控制器的上下文中执行的任何操作,堆积在队列中的操作或客户端-后端消息交换。 如果我只知道实施将需要32个小时😉 封装架构 让我们从一个基本的方法开始:为了实现类似开放式跟踪的图形,我决定使用看起来最好的图形元素。 开放式跟踪框架处理范围的两个基本概念:正在发生事情的上下文; 范围-范围内的一些活动。 包实现中的作用域具有开始和停止事件,唯一名称以及结果:成功或失败。 与成熟的开放式跟踪框架所建议的相比,此方法大大简化了,但足以用于试验软件包中的图并很有用。 打包方案不是很复杂。 我将不深入介绍第一部分中描述的元素,而我只会讲一些关于图形的特定内容。 您可以在这里浏览: https://github.com/appspector/Tracer/blob/master/TracerPackage/TracerPackage.instrpkg 我在周末构建原始实现时遇到的第一个问题是,仅在发送stop事件后,图形通道才出现在UI中。 我想从开始事件开始显示它,并用不同的颜色突出显示当前正在运行的跨度。 多亏了参加410次会议的Apple工程师Kacper,我才发现仪器具有一种特殊的结构,称为“开放间隔模板”。 它是一种结构,用于定义开始和结束事件之间包可使用的字段。 图本身用“图”节点描述,其中包含诸如标题和对表的引用之类的字段,以从中获取数据; “ plot-template”结构描述了显示的图形通道。 下面的示例意味着我们将为每个唯一的作用域都有一个单独的通道,它将从作用域名称变量中获取其名称。 “ plot-template”下的最后两个标签描述了车道内的线,颜色将来自“ status-color”,标签来自“ span-name”。 另一个有趣的事情是,“ open-interval-template”只能操作出现在开始模式中的变量。 这完全有道理,因为当您显示开始但未结束的事件时,您的代码无法使用结束模式中的数据。 同样,在表的最后两列中,我们计算行和状态标签的颜色,为此,我们需要知道事件的状态-它是正在运行还是已经完成? 我看到解决此问题的唯一方法是仅检查结束模式中存在的变量。 这就是为什么您在开始和结束模式中看到“ span-name-started”和“ span-name-stopped”变量的原因。 第一个用于在行上绘制跨度名称,第二个用于区分正在运行的跨度和结束跨度。 这是关于自定义程序包的丑陋事情之一,感觉它应该有另一个更优雅的解决方案。 第一次尝试 我很高兴在真实代码上尝试使用示踪剂,因此我开始寻找一个很好的例子。 第一次尝试是AppSpector SDK和消息处理模块。 每条消息的传入和传出都需要经过两个步骤:序列化,打包,压缩和最终发送。 有时,由于诸如网络故障等各种原因,消息可能会在队列中等待。这看起来很合适,因此我插入了示踪剂调用并开始记录期望的图像,就像在开放的示踪手册中有很多重叠的通道一样。 […]