Tag: swift

XCode模板

最终没有在任何地方存在的概念。 不适用的形式或形式上的法律要求。 在此之后,我们将发布XCode或hacer plantillas delcódigoque mas usamos的常规模板。 1. Nuevo模板 Vamos a crear un nuevo模板llamado CustomTemplate ,para vamos a crear un contenedor de la plantilla。 由ejemplo en el escritorio提供。 Para crear ese contenedor creamos unaveta normal y de nombre le ponemos CustomTemplate.xctemplate 2.自定义类 尤其要注意的是植物生长的裂缝。 Nuestra plantilla vamos,lamarle CustomClass和seres Swift,以及poder tener或no XIB。 Para ello creamos dos carpetas: […]

TextView中的占位符

iOS中的占位符是用于表示View用户的信息文本。 占位符是iOS中TextField的实例属性,但众所周知,这不适用于TextView。 为了在TextView中提供占位符文本并使其表现得像TextField,我们必须使用文本颜色和TextView的委托方法。 为占位符文本和键入的文本分别指定颜色 它有助于我们使用键盘区分占位符文本和键入文本。 假设我们有占位符文本: “请在此处评论…”,然后 var占位符=“请在这里评论…” 并将占位符文本添加到ViewDidLoad()中的TextView中 myTextView.text =占位符 myTextView.textColor = .lightGray 使用TextView的委托方法 当我们开始编辑myTextView时,然后检查文本颜色,如果是浅灰色或分配给占位符文本的颜色,则使myTextView清除/为空,并设置要显示键入文本的普通文本颜色。 func textViewDidBeginEditing(__ textView:UITextView){ 如果textView.textColor == .lightGray { textView.text =“” textView.textColor = .black } } 当我们结束编辑myTextView时, 检查myTextView是否为空:将空字符串分配给我们先前声明的占位符变量,因为我们使用相同的变量供将来使用。 否则将myTextView文本分配给占位符变量 func textViewDidEndEditing(_ textView:UITextView){ 如果textView.text.isEmpty { textView.text =“请在这里评论…” textView.textColor = UIColor.lightGray 占位符=“” }其他{ 占位符= textView.text } } 我们有一个委托方法,该方法将调用textView中的文本更改,我们正在使用此方法来使占位符变量保持为textView中输入的文本更新 。 func textViewDidChange(_ textView:UITextView){ 占位符= […]

Swift中协议更好的重用标识符

最近,我正在经历设置新的UICollectionView 。 我已经为单元格编写了一个视图模型,并准备了一个UICollectionViewCell子类。 剩下要做的就是实现cellForItem(at:) 。 UICollectionView :如果您以前没有使用过UICollectionView ,而是更像UITableView ,那么您可以将Collection替换为Table ,将Item替换为Row并且该帖子仍然有效。 作为一名负责任的iOS工程师[需要引用],我知道我在这里要做的第一件事就是让我的collectionView出队一个单元。 为此,我必须调用dequeueReusableCell(withReuseIdentifier:for:) ,并传递一个String “重用标识符”。为了使collectionView知道我在说什么,我还必须调用register(_:forCellWithReuseIdentifier:) ,因此它知道将此重用标识符映射到我的UICollectionViewCell子类。 该子类大致如下所示: 最后一个类CustomCollectionViewCell:UICollectionViewCell {//代码等。 除此以外: CustomCollectionViewCell只是一个示例名称。 请不要这样命名类。 我确定此单元格的明智重用标识符为”CustomCollectionViewCell” 。 因此,我使用了它,并调用了这两种方法。 这些调用看起来像这样: //在设置方法中 collectionView.register( CustomCollectionViewCell.self, forCellWithReuseIdentifier:“ CustomCollectionViewCell” ) //在cellForItem(at :)中 collectionView.dequeueReusableCell( withReuseIdentifier:“ CustomCollectionViewCell” 用于:indexPath ) 这显然很糟糕。 我们周围挂着一根魔力绳,而且它不止一个地方。 显然,这需要一些重构,所以这正是我所做的。 第一步只是将字符串移动到CustomCollectionViewCell类的静态常量中。 最后一个类CustomCollectionViewCell:UICollectionViewCell {静态让复用Identifier =“ CustomCollectionViewCell”} 好的,好的开始。 这意味着我们可以使用CustomCollectionViewCell.reuseIdentifier访问代码中的任何位置的标识符。 已经比我们以前有了很大的改进。 但这确实带来了另一个问题。 如果以后更改类名怎么办? 我们可能只记得更改它,但让我们在这里成为现实:我们是人类,我们并不总是记住这样的事情。 即使它正盯着我们看着。 这就是为什么我们需要计算机为我们做这些事情的原因。 这样就很好地引出了下一个问题:我们可以让编译器来帮助我们吗? […]

Swift4中自动解码的性能

在很多情况下,您将面临通过网络发送或接收数据(或仅保存/加载文件中的自定义对象)的问题。 而且,当然,有几种不同的技术可以对JSON进行序列化/反序列化-您可以自己完成操作,也可以使用第三方框架。 最后,Apple提供了新的编码和解码自定义类型。 到目前为止,您的数据类型变得可编码和可解码,以与JSON等外部表示兼容。 它提出了极其简单明了的方法,减少了代码并节省了时间。 是不是很酷? 好… 测量解码自定义类型 不幸的是,我们没有生活在一个完美的世界中。 有时需要处理带有很多胖对象的胖JSON,而我们对此无能为力。 让我们比较一下通过新的API自动解码自定义类型和手动解码(意味着完全手动解码,而不是“ init(来自解码器:解码器)”)。 我已经创建了简单的结构`Writer`。 它符合`Codable`,并且可以用`JSONDecoder`解码。 也可以使用执行手动解码的init(dictionary :[String:Any] ) `对该对象进行解码。 测试环境和配置: iPhone 7,iOS 11.2 构建配置:发布 优化级别:[-Ofast] struct作者:可编码{ var名称:字符串? var email:字符串? var contact:字符串? var years:整数? var isPublic:布尔? } 苹果还为支持“可编码”的对象提供了自己的“手动编码和解码”实现。 如文档中所述: 如果您的Swift类型的结构与其编码形式的结构不同,则可以提供Encodable和Decodable的自定义实现,以定义自己的编码和解码逻辑。 因此,为了测试结构,添加了扩展名`init(from解码器:Decoder)`。 扩展作家:可解码{ 枚举CodingKeys:字符串,CodingKey { 案例名称 案例电子邮件 案例联系 案例年 案例是公开的 } init(来自解码器:解码器)抛出{ 让值=尝试解码器。容器(keyedBy:CodingKeys.self) 名称=尝试? values.decode(String.self,forKey:.name) 电子邮件=尝试? values.decode(String.self,forKey:.email) 联系人=试试? […]

语音识别

使用框架语音识别的应用程序可在iOS上重新安装。 苹果公司的语音识别框架是基于语音识别的 。 Todos作为信息服务对象,是API的重要组成部分。 您可以在casa fique algumadúvidaou haja alguma信息服务中找到您想要的产品,也可以在casa fique sem deixar seucomentário中找到。 Eu ficarei feliz em ajudar etambémde corrigir o queéénecessário。 🤓 Entãovamoslá!!! iOS上的Voz维修 Apple或Swift框架的补充说明。 在WWDC 2016上将在iOS 10或Windows Server 2003框架上进行发布,并在框架上进行语音转换,以确保最终的结果。 Antes dessaversão,existiam algumas bibliotecas de terceiros criadas组成了mesma finalidade。 Mas com sta nova API或pos集成商。 有关军刀的信息: 可以在互联网上通过电子邮件与苹果的娱乐系统进行互通。 “没有法律规定的赔偿,……没有苹果公司规定的再保险准则”。 存在的限制和修复的最小限度。 保留重要意义的权利。 苹果公司提供的法律保护,一种法律上的先决条件。 由使用自动驾驶汽车的重要动机,侦探科摩拉·塞拉萨达,骑自行车的德克桑多·德·曼尼拉·克拉拉,公共安全的使用费。 删除所有Github的声音! Ésóacessar! 普罗耶托 Crie […]

SWIFT4 —您需要了解有关使用Segues的全部知识!

注意:更新了Xcode 9.2,iOS 11和Swift 4。 今天,我将与您讨论塞格。 对如何使用segue的清晰理解构成了在IOS中开发应用程序的开发人员方法的基础。 如果所有应用程序只有一个屏幕且没有过渡,则它们将非常平坦。 即使您可以通过某种方式尽最大可能在单个屏幕上满足您企业的所有需求,其背后的样板代码也会使整个实现错误容易发生且毫无用处–抛开您作为IOS开发人员的职责吧! 在瞬息万变的IT世界中,本文到目前为止的假设是您正在使用最近发布的最新IOS 11和Xcode 9.2。 理论理解 :在现实世界中,“ segue”一词的意思是从一个地方到另一个地方-从A点到B点的不间断过渡形式。 在Apple世界中,segue是一种从一个屏幕(“视图控制器”)转移到另一个“视图控制器”的方法。 屏幕转换既可以通过编程方式进行,也可以使用segues进行,有时还可以同时使用两者。 可以基于用户单击按钮,从REST API(或端点)返回的值(如成功登录)或基于要在用户界面上将其转换为其他形式的用户选择来触发Segues。 简而言之,segue是IOS导航的基本构建块。 足够的理论知识,让我们打开Xcode,让我们进入泥潭! 步骤1:打开Xcode。 使用对象资源管理器在“界面”构建器上找到一个新的视图控制器并将其拖到main.storyboard。完成后,您的屏幕应类似于下面的屏幕。 步骤2:接下来,将按钮对象拖放到第一个视图控制器上。 第3步:通过选择按钮并在Mac中按Control键,将鼠标拖放到第二个视图控制器。 释放鼠标时,第二个View控制器上会出现一个下拉菜单。 在这里,您有以下选项:显示,显示详细信息,模态呈现,作为弹出窗口呈现和自定义。 显示:也称为Push segue。 这种类型的segue允许您在彼此顶部的视图控制器堆栈之间进行导航。 当我们嵌入导航视图控制器时,此类型导航的一种很好的用法(稍后将在单独的教程中对其进行详细介绍)。 现在,只需要了解将目标视图控制器从堆栈上的右推到左即可。 示例用法可能像浏览文件夹或电子邮件收件箱一样。 显示详细信息 :主要在使用拆分视图控制器时使用。 模态显示:显示具有动画的View控制器。 自定义Segue:您可以实施自己的自定义Segue ,并对行为进行控制。 在iOS 8中,已弃用的序列已被弃用,因此本教程将不介绍它们。 步骤4 :当您成功将第一个VC与第二个VC连接后,您的屏幕应类似于下图。 步骤5:就这样。 超级简单! 通过双击按钮或使用属性浏览器并更改title属性,为按钮赋予有意义的标题,还可以将第二个ViewController的背景色更改为默认的白色以外的其他颜色,这样您就可以看到发生了横向变化。 ! 苹果公司的工程团队为IOS开发人员做出了这样的努力。 点击播放,查看转换的实际效果。这是对新手用户的基本介绍。 在我的下一个教程中,我将更深入地介绍segue,以使您更上一层楼。 请继续关注更多信息。 如果您有任何疑问或意见,请在此处给我留言或发送电子邮件至fahdsaif@hotmail.com。

什么是Swift语言? – Nandhini D –中

什么是Swift语言? Swift是用于macOS,iOS,watchOS和tvOS的强大而直观的编程语言。 编写Swift代码是交互式且有趣的,语法简洁而又富有表现力,并且Swift包含开发人员喜欢的现代功能。 Swift代码在设计上是安全的,但也可以生成运行闪电般快的软件。 2)学习Swift的理由 Swift是开源的 Swift很容易学习 斯威夫特快 斯威夫特平易近人 雨燕很安全 斯威夫特很熟悉 Swift是苹果发展的未来 Swift已为企业做好准备 你可以尝试 Swift的经济案例 苹果对Swift的承诺 有大量的Swift学习资源 3.使用Swift的优势 可读性 选择Swift的第一优势可以说是因为它的语法简洁,这使得它更易于读写。 在Swift上实现一个选项所需的代码行数量比Objective-C少得多。 保养 没有C先发展,Objective-C不可能发展。 相反,Swift没有这些依赖项,这使得维护起来容易得多。 C要求程序员维护两个代码文件,以缩短代码的构建时间和效率,这也可以延续到Objective-C。 更安全的平台 在竞争激烈的移动应用程序市场中,开发安全的应用程序应该是当务之急。 Swift的语法和语言构造排除了Objective-C中可能出现的几种错误。 这种稳定性意味着将减少崩溃和出现问题行为的情况。 更少的代码和更少的遗产 使用Objective-C,存在许多导致应用程序崩溃的问题。 Swift提供的代码不太容易出错,因为它对操作文本字符串和数据提供了内联支持。 此外,类不分为两部分; 接口和实现。 这样可以将项目中的文件数量减少一半,从而使处理起来更加容易。 速度 Swift在开发过程中还提供了多种速度优势,从而节省了成本。 例如,复杂对象排序的运行速度比Python中相同算法的实现快3.9倍。 4)Swift的新功能 更快,更易于使用的字符串保留了Unicode正确性,并增加了对创建,使用和管理子字符串的支持 智能键路径,用于对Swift类型进行类型安全,高效,可扩展的键值编码 增强了创建和处理字典和集合类型的能力 将档案和序列化支持扩展到结构和枚举类型,并启用类型安全性以序列化为外部格式(例如JSON和plist) 强制对内存进行独占访问。 联系我们: 044–42645495 | + 91–9789968765#67,“ Deva Daya”,Adyar甘地纳加尔第一大道| 钦奈— 600020 | www.bigdatatraining.in […]

持续学习曲线(2018年5月)

5月3日,星期四 iOS工程工作流中的即时反馈 无需越狱即可浏览应用程序 使您的iOS应用更安全的5个步骤 与一个巨大的Xcode项目进行角力 MVVM-C中的C 向TensorFlow推出Swift 如何树立设计眼 我们如何在Shopify组织(一些)UX团队 纸线框如何使您成为更好的设计师 如何将数据源和委托移出视图控制器 智能手机如何处理庞大的神经网络 MVVM和VIPER之间的界线模糊 改善智力并变得更聪明的最佳方法 MVVM-MVC正确完成 添加缓存 动画UIWindow的rootViewController过渡 为什么带有关联值的Swift枚举不能具有原始值 优步工程博客 用代码创建视图 在Swift闭包中捕获对象 5月4日,星期五 为什么我要离开硅谷 键入的通知(第1部分) 键入的通知(第2部分) 协议和类层次结构 深度学习变得简单 工程师三天不开会的时间表 5月7日,星期一 介面 发现和比较技术栈 5月8日,星期二 突变无类型词典 所有代码都是一次性的,就像应该的那样 Twitter最佳iOS技巧:3月和4月版 Swift中的函数式编程:充分利用代码 5月9日,星期三 降低难度 使用工厂在带有自定义主题的Swift中创建干净且可重用的视图 使用Swift进行Web开发 数组,数组切片和集合 Moishe Lettvin-我在Google进行250次面试时学到的知识 14分钟内Google I / O 2018主题演讲 Waymo 10分钟内Google I / O 2018主题演讲 5月10日,星期四 […]

单元测试。 开始。

你是一个伟大的程序员。 至少我希望如此。 即使您遵循SOLID,DRY和KISS原则编写了干净的代码,您的应用程序也会出现错误。 显然是因为算法。 您可以为新的数据传输算法创建出色的逻辑,但是如果在代码中实现它时犯了一些错误,它将无法正常工作。 单位代码使您可以自动测试代码的逻辑。 您需要编写一个测试,并且该测试将在每次对代码进行任何更改时运行。 让我们编码吧! 哦停下来 下载我为您制作的启动项目。 https://yadi.sk/d/2qbUCjKJNRAccQ 只有一个包含逻辑的类,我们将对其进行测试。 导入Foundationclass数学:NSObject {静态函数add(value1:Int,value2:Int)-> Int { 返回值1 +值2 } 静态函数减法(value1:Int,value2:Int)-> Int { 返回值1 —值2 } 静态函数乘法(value1:Int,value2:Int)-> Int { 返回值1 *值2 } 静态函数Divide(value1:Int,value2:Int)-> Int { 返回值1 /值2 } } 打开测试导航器,然后单击+ 选择“新单元测试目标”。 您将看到从XCTestCase继承的新创建的类。 导入XCTestclass UnitTestsStarterTests:XCTestCase { 覆盖func setUp(){ super.setUp() } 覆盖func tearDown(){ super.tearDown() } func testExample(){ } […]

RxSwift中的TableView –第1部分

什么是RxSwift? Rxswift是iOS开发中最受欢迎的库之一。 这是一种管理数据流的新方法。 当我开始学习反应式编程时,我想到的第一个问题是,我们该怎么办? 还有很多其他问题。 因此,要回答这些问题以及不熟悉反应式编程和RxSwift的人员,我希望您看看LeandroPérez的这篇文章。 在开发应用程序时,需要编写很多东西,从UI到应用程序逻辑。 在RxCocoa的帮助下,我们可以以反应式方式为UI编写代码。 最受欢迎的UI元素是TableView,我们多次编写TableView委托和数据源,但是现在我们有了更多处理TableView的方法。 在这一部分中,我们将设置一个具有一部分和单元格类型的TableView。 所以我在Github上创建了一个简单的项目,您可以在这里下载它。 我们将致力于这个项目。 我在该项目中使用了MVVM设计模式。 安装吊舱 要使用RxSwift和RxCocoa,可以通过cocoapods安装它们。 我们有三个单独的层。 模型 我们创建具有三个属性的产品模型。 感谢您阅读本文,如果喜欢,请与他人分享share。 我正在等待在评论部分中看到您的评论或推荐。