Tag: 技巧和窍门

C ++ Lambdas的成功和错误回调

今天,我们将快速介绍如何使用Modern C ++ lambda实现成功和错误回调。 在我的应用程序中实现应用程序内购买客户端时,我不得不进行一些HTTP调用以检索各种文件/数据。 我决定将系统相关的iOS / macOS代码包装在一个简单的HTTP类中,并使用两个额外的模板化参数作为成功/失败回调。 这是向类提供两个半匿名lambda的一种非常简单的方法。 让我们从类/包装器定义开始: HTTPRequest类。 如您所见,它混合了Objective-C ++和块 现在,这是一个简单的帮助器函数,用于创建新的HTTPRequest: MakeHTTPRequest负责转发和创建 现在让我们看一个真实的例子: 该课程非常简单,缺少一些内容,但是您可以理解。 Lambda在不同的场景中绝对是非常有用的,而且自Xcode开始支持C ++ 11以来,我就发现自己严重依赖它们。 干杯!

插座系列

在Flatiron School的iOS沉浸式课程的第二周,我几乎快要结束了。 当涉及到我的环境时,我一直认为自己是一个悠闲的家伙。 但是,在纽约待了一个多星期之后,我意识到我肯定是100%认证的整齐怪胎! 因此,当我在Xcode的Interface Builder: Outlet Collections中工作时遇到一个有趣的选择时,我的想象力被激起了,这并不奇怪。 到目前为止,我们主要使用IBOutlet构建了noob应用程序,这已经足以满足视图中相对较少数量的对象的需求。 但是,在第一天创建Tic Tac Toe应用程序时,我的朋友Will Robinson建议我们使用插座集合来管理众多按钮标签和操作。 插座集合使对象的状态更改(例如颜色,文本内容,隐藏状态等)更易于编码。 例如,在我合作的TicTacToe应用程序中,为网格的每个部分提供9个单独的按钮比为网格的每个部分提供9个单独的按钮要干净得多。 我们今天不会制作TicTacToe。 取而代之的是,我们将把一些标签放在一起作为Outlet Collection进行操作,以便快速分享它们的潜力。 首先,我们需要创建一个插座集合。 如果您想继续使用Xcode,建议您至少在两行中放置一些标签,因为这将有助于说明插座集合创建其初始顺序的方式。 即,集合的初始项目顺序是您添加它们的顺序。 因此,一旦在多行中创建了标签,请确定将标签添加到集合中的顺序。 我将从左到右,从上到下。 Ctrl将第一个标签拖动到View Controller.swift中。 系统将提示您选择一些选项并命名您的插座。 首先,确保选择连接类型为“ 插座集合”。 这将允许您向收藏夹添加其他标签。 创建您的Outlet Collection后,您将要开始将其余标签添加到该Collection中。 为此,您可以将集合的IBOutlet旁边的连接圈一次拖到情节提要中的每个标签上。 同样,我从左到右,从上到下进行了此操作。 ( 注意:在Swift 3.0中,UILabel集合可以访问类似数组的方法,因此可以使用.remove和.insert等方法来访问和操纵成员标签的位置。想想所有的程序化组织能够做到!) 现在,我们将如何控制这些标签? 简单! 由于我们已按照特定顺序将它们添加到集合中,因此我们可以根据该顺序引用它们! 例如,可以根据您在标签中放置标签的顺序(通过labelGroup [0] = Label1,labelGroup [1] = Label2,依此类推)通过labelGroup [index]来操作我的标签。 您可以通过放置几个打印命令并在ViewDidLoad()中设置labelGroup [0] =“ Hi!”来验证这一点。 现在,当我运行此应用程序时,我可以看到在日志中打印了可选字符串: ( 注意:请注意,我的日志仅显示打印行。如果您要这样做,请执行以下操作: 单击以下菜单: […]

有用的鲜为人知的Xcode技巧,可改善您的工作流程

Xcode是用于开发适用于macOS,iOS,watchOS和tvOS的软件的主要IDE。 它包含许多众所周知的功能,例如“快速打开(( ⇧ + ⌘ + O )”,助手编辑器和方便的快捷键(例如⌘ + U ,可以快速运行测试。 其他一些功能鲜为人知,但同样有用,并且将描述这些Xcode技巧。 使用⌃ + ⌘ + E编辑范围内的全部,并同时更改所有具有相同名称的变量或方法。 在Xcode 9之前,很容易跳转到定义。 从Xcode 9开始,将显示一个新菜单。 如弹出窗口所示,引入了新的组合以快速跳转到定义。 组合^ + ⌘ + Click可直接跳至定义并跳过弹出窗口。 使用⌥ + ⌘ + /快速添加文档。 通常,搜索时会在搜索结果中显示很多框架。 在您的个人项目或框架中搜索代码时,这可能会很混乱。 通过定义自己的自定义搜索范围,您可以加快工作流程并更快地找到所需的内容。 在Xcode Navigator的左下角,您经常会找到有用的鲜为人知的工具。 有两种有用的过滤方法可用于测试。 Show only tests in the currently selected scheme的Show only tests in the currently selected scheme隐藏所有不相关的测试,以提供更好的概览。 如果您需要专注于修复测试,则旁边的按钮仅显示失败的测试。 Xcode […]

SWIFTip#2:本周的随意见解

快速学习。 这是每周的见解,可增强Swift良好实践的技能。 如果您对快速学习者有更好的建议,请发表评论。 谢谢。 #SpeedupSwiftCompileTime 加快Swift编译时间 极大地优化您的Swift编译时间 hackernoon.com #CleanSwiftArchitecture 引入Clean Swift体系结构(VIP) 立即忘记MVC! hackernoon.com #invisible布局加载视图。 互动工作室/无风 Windless使实现不可见的布局加载视图变得容易。 github.com #SecurityAlertsOnGitHub GitHub现在会提醒您项目依赖项中的安全漏洞 如果您正在处理GitHub托管项目上的依赖项,那么您将很高兴知道回购平台将… thenextweb.com #SSLPinningSwift iOS中的SSL固定– Swift版 由于几乎整个iOS开发社区都已从Objective-C转移到Swift,因此,库的首选项和 infinum.co #Reusability&CompositionSwift Swift中的可重用性和组合* Swift Post 尼采,梭罗和黑森最有可能试图逃避他们一生的一个概念:依赖性。 即使是…… theswiftpost.co