本文链接:https://blog.csdn.net/ZY_FlyWay/article/details/95612473 // Converted to Swift 4 by Swiftify v4.2.40307...- https://objectivec2swift.com/ func checkBankCardNumber(_ cardNumber: String?)
toc 发布Hipo Mac 版本后,花了一天时间升级Hipo iOS代码到Swift 3,然后准备为Hipo iOS 增加spotlight 搜索功能,因此就需要分词作为搜索的关键词。
接触swift 已经有一年多的时间了,由最初的OC代码转为 swift 代码,然后从 swift 2.3 转为 swift 3。...二、既然是改写 swift 代码,那么就是对swift 不是太了解 三、针对一些第三方库,期望改为swift版。...建议在转码初期,先将这些文件转为 swift。既然能称为工具类,那么一般都是解耦的,所以说,可以新建一个swift项目,将这些工具类转为swift文件。...否则不需要 3、将 import SnapKit 放在 import UIKit 或 import Foundation 或 All rights reserved....swift 编程,swift在代码编写方面确实是能够提高效率,尤其是swift 是面向协议编程,其灵活性不可言喻,并且在 swift 的强语言下,swift 项目是相当稳定的。
简介 ---- 使用起来超级简单的text验证框架,从此远离一堆代码验证一个表单。...示例 ---- 详细例子可以运行示例程序查看,克隆这个仓库,在Example文件夹下执行pod install 支持 ---- iOS 8.0 Swift4.0+ CocoaPods安装 ---- Podfile...TextFlied 如果只需要验空 passwordText.validate(emptyInfo: "请输入XX") emptyInfo参数可以不填,默认提示placeholder 规则验证...会深度遍历所有self.view的子TextFlied,如果没有就提示placeholder) if checkSubmitView(self.view){ } 规则验证...email case okpwd case idcard case bankcard case number } 希望可以共同维护,遇到的多种规则,让它越来越强大,让验证越来越简单
Swift3 的gcd变化很大,这里列举一下,大家可以有个对照: 1、Create a serial queue 创建一个serial queue OC dispatch_queue_t queue =...^{ // 在queue线程执行 dispatch_async(dispatch_get_main_queue(), ^{ // 回到主线程 }); }); Swift3...queue线程执行 dispatch_async(dispatch_get_main_queue(), ^{ // 回到主线程 }); }); Swift3...globalDispatchQueueBackground = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0); } Swift3...(time, dispatch_get_main_queue(), ^{ NSLog(@"%@", @"3秒后执行"); }); Swift3 let time = DispatchTime.now
有数据,不妨测试一下,非常有趣: 1.各个信用等级的逾期率 其他的都比较符合预期,但A的偏高,我也很纳闷,把数据调出来,从高到低排是这样的: 借的量巨大,一旦逾期,在整个逾期率的计算中必然拖累整体。...看来数据没啥毛病。将来对选择标的进行模拟时,如果加上金额限制,同样没啥问题。如限制借款上限为6000,则逾期率就降低很多: 2.性别,女人比男人靠谱 3.借期,6月和12月是主体,但6月明显逾期率低。
LeetCode.jpg 题目:验证回文字符串 描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。...} i += 1 j -= 1 } return true } 提交记录: image.png 用Swift
LeetCode 题目: 验证二叉搜索树 验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。...示例1: 输入: 2 / \ 1 3 输出: true 示例2: 输入: 5 / \ 1 4 / \ 3 6 输出: false 解释...: 输入为: [5,1,4,null,null,3,6]。
LeetCode 题目: 3的幂 描述:给定一个整数,写一个函数来判断它是否是 3 的幂次方。...案例1: 输入: 27 输出: true 示例 2: 输入: 0 输出: false 案例 3: 输入: 9 输出: true 案例 4: 输入: 45 输出: false 方案一:使用循环,当整数除3...的余数不为0时,不是3的幂,整数一直除3,最后值为1,则该整数是3的幂 代码一: func isPowerOfThree(_ n: Int) -> Bool { if n 3的幂有个特性,他的约数必是3的幂,所以可以求一个不溢出情况下的最大3的幂整数去除所需要判断的值,如果余数为0,则是3的幂 代码二: return n > 0 && (Int(pow(Double(3...、、、然后这个执行用时,有时300多,有时200多、、、我也是不知道为什么 进阶执行用时 用Swift开始学习算法中,在LeetCode中开始做初级算法这一章节,将做的题目在此做个笔记,希望有更好方法同学们
数组是由一组类型相同的元素构成的有序数据集合。数组中的集合元素是有 序的,而且可以重复出现。...是泛型,说明在这个数组中只能存放字符串类型的数据。 第2行代码声明了一个类型为[String]的不可变数组strArray2。[String]也是声明一个只能存放字符串类型的数组。...”,”swift”] 3 | let strArray3 = [“hello”,”swift”,15] 上述代码都是对数组进行声明和初始化,数组的类型是通过冒号(:)指明数组的类型。...第3行代码声明了一个不可变数组,这里没有指明数组的类型,采用的是隐式推断。根据初始化数组的值推断出数组的类型。...在strArray3数组中我们存放了String类型的”hello”,”swift”以及Int类型的15。在没有明确指定数组类型,我们可以在数组中存放不同类型的元素。
在这种情况下,我们必须将数据缓存在设备本地的某处,以使其无需互联网即可读取。 Apple提供了CoreData框架,这是在本地存储应用程序数据的最佳方法。它具有许多出色的功能,可帮助您促进开发。...我想分开访问存储的可写和可读部分,这是我们可以使用Swift语言的协议组合功能的地方。...这有点棘手,因为key是文件系统上数据的路径。因此,我们需要将ke'y附加到根路径并生成用于存储数据的新URL。...同样,我们使用key作为磁盘上数据的路径。...它使用通用约束来了解如何解码和编码数据。现在该在实际示例中使用我们的CodableStorage了。
(非常类似的数据结构,队列是FIFO,或先进先出。) 开始了解堆栈 我们用下面这堆书来模拟堆栈的工作方式 ? 堆栈操作 push:想添加一个元素到堆栈上时,你可以推入堆栈。...Swift栈实现 打开一个playground开始实施Swift堆栈!...PEEK堆栈会看到“3D Games by Tutorials”,这是你PUSH堆栈的最后一个元素。 POP堆栈“3D Games by Tutorials”,这是推入堆栈的最后一个元素。...例如,数组[“3D Games by Tutorials”,“tvOS Apprentice”]将在加入后成为"3D Games by Tutorials\n tvOS Apprentice"。...本系列其他文章: Swift算法俱乐部:Swift队列数据结构(Queue)
内置数据类型 Int 一般来说,你不需要专门指定整数的长度。Swift 提供了一个特殊的整数类型Int,长度与当前平台的原生字长相同: 在32位平台上,Int和Int32长度相同。...布尔值 Swift 有一个基本的布尔(Boolean)类型,叫做Bool。布尔值指逻辑上的值,因为它们只能是真或者假。Swift 有两个布尔常量,true和false。...2.如果你没有给浮点字面量标明类型,Swift 会推断你想要的是Double。...(当推断浮点数的类型时,Swift 总是会选择Double而不是Float) 3.如果表达式中同时出现了整数和浮点数,会被推断为Double类型。...) // varB 会被推测为 Double 类型 var varB = 3.14159 print(varB) // varC 也会被推测为 Double 类型 var varC = 3
sqlite轻便小巧,底层采用C操作,跨平台在Linux和Android以及iOS甚至是嵌入式都通用,今天我们简易进行一些swift操作sqlite…… 开始之前我们先简易的看看一些sqlite操作 ?...open_v2(self.dbFilePath, &handle, flags, &vFs) return ret == SQLITE_OK } } 2 查询column和对应的数据类型...step(stmt) == SQLITE_OK } } 4 表中对应的每列数据信息 class SKSQLiteColumnData{ var table: String...self.columnName = columnName self.dataType = dataType self.value = value } } 5 对数据按行处理...{ return rows.removeFirst() } } 6 对sqlite的数据类型进行统一整理 protocol SKSQLiteDataType {} extension
翻译自raywenderlich网站iOS教程Swift Algorithm Club系列 准备开始 队列(Queue)是一个列表,您只能在后面插入新项目并从前面删除项目。...然后,继续将下一个号码添加到队列中: queue.enqueue(3) 队列现在是[10,3]。 继续添加: queue.enqueue(57) 队列现在是[10,3,57]。...队列现在将是[3,57]。 每个项目都向上移动一个地方。 queue.dequeue() 这将返回3.下一个出列将返回57,依此类推。 如果队列为空,则出队将返回零。...现在控制台的输出编程如下样式: [10, 3, 57] Swift通用队列实现 此时,我们已经实现了一个存储Int值的通用队列,并提供了在Queue类中查看,排队和出列项目的功能。...本系列其他文章: Swift算法俱乐部:Swift栈(Stack)数据结构
最新的Xcode11.4 已经不能运行曾经Swift3.x的代码了。 我本想用Swift5重写一遍、后来感觉重写工作量有点大,业余精力有限所以直接在原基础上升级改造。 ?...swift的副本.png 源项目 https://www.jianshu.com/p/3228bfa3be7d 曾经Swift3写的,业余更新造成年久失修。...准备 Xcode 11.4 Xcode 10.1 源项目能在支持Swift3.x 的Xcode 10.1中正常运行 , 所以升级步骤先在Xcode 10.1中升级到 Swift4.x , 然后在Xcode...3 @objc inference in Swift 4 mode is deprecated....修改:选择Target->Build Settings,搜索Swift3,在Swift3 @objc Inference中,把On改为Off或者Defalut。 编译、运行成功,修改完成。
passed = scores.allSatisfy { $0 >= 85 } 原地字典的元素移除 SE-0197提供一个全新的removeAll(where:)方法,以此来提供一个更高效,会操作原数据的类似...(anotherString) names.insert("Jane", atIndex: 0) UIDevice.currentDevice() // Swift 3 let blue = UIColor.blue...2.2 // 迪尔汗是Swift 3 " Hello ".stringByTrimmingCharactersInSet(.whitespaceAndNewlineCharacterSet())...2.2 // 第二行是Swift 3 CGAffineTransformIdentity CGAffineTransform.identity CGAffineTransformMakeScale(...print(x),x.sort(),x.append(y) 有修改和无修改命名 动词的方法中,无修改的使用过去时ed(通常是,不修改原数据,而是返回新的),有修改的使用现在时ing。
/验证邮箱 class func validateEmail(email: String) -> Bool { if email.count == 0 {...format: "SELF MATCHES %@", emailRegex) return emailTest.evaluate(with: email) } //验证手机号...return true }else { return false } } //验证身份证号...NSRegularExpression.init(pattern: "^((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|71|(8[12])...NSRegularExpression.init(pattern: "^((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|71|(8[12])
数组 Arrays 1、一个数组只能存储特定类型的数据; 2、所存储的数据不一定是一个类的对象,可以是基础数据类型; var array = ["A","B","C"] //["A", "B", "C..."] var array2:[String] = ["A","B","C"] //["A", "B", "C"] var array3:Array = ["A","B","C"] //[...] var array8 = array6 + array7 //两个数组合并 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4] 数组基本操作 var array = ["...array.count { print(array[index]) } //遍历数组-2 for item in array { print(item) } 字典 字典初始化 1、字典存储的数据是键和值的数据对...2、所存储的数据中,键和值可以是任意数据类型 3、一个字典只能存储固定一种键和值的数据类型搭配 //隐式声明 var dict = [1:"a",2:"b",3:"c"] var site =
数据种类繁多在Swift中是单独处理他们的。在给变量赋值时,您已经看到了最重要的类型之一,但在Swift中,这称为Swift(字面上是字符串)。...这里的教训是,Swift总是想知道每个变量或常量将保存什么类型的数据。总是!...我们现在可以通过引入另一种重要的数据类型Int来尝试这一点,Int是integer的缩写,整数是3、30、300或-16777216这样的整数。...我们说过经度应该等于-86.783333,但在结果窗格中,您将看到-86.78333——它在末尾缺少了一个3。现在,你可能会说,“0.000003有什么关系?”但这很好地证明了我所说的准确性。...初学者的入门课程Swift for Complete Beginners 的 Types of Data
领取专属 10元无门槛券
手把手带您无忧上云