swift
文章平均质量分 51
正在注销账号
等风来不如追风去~
展开
-
swift进阶(五)协议
协议的用法语法格式protocol MyProtocol{ //body}class、struct、enum都可以遵守协议,多个协议,使用逗号分隔struct Person: Protocol1, Protocol2{//body}协议中添加属性协议同时要求一个属性必须明确是可读的或者 可读的和可写的属性要求是变量属性,不能使用let声明protocol MyProtocol{ var age : Int{ get } var name : String{原创 2021-01-03 18:01:55 · 221 阅读 · 0 评论 -
swift进阶(四)闭包底层探索
Swift进阶文章汇总在文章swift进阶(四)闭包的使用介绍了闭包的使用,那么闭包底层是什么样的呢?那今天让我们探究一番。1. 闭包捕获上下文先看以下代码打印的值应该是多少?func makeIncrementer() -> () -> Int { var runningTotal = 10 func incrementer() -> Int { runningTotal += 1 return runningTotal .原创 2020-12-27 18:01:36 · 452 阅读 · 1 评论 -
swift进阶(四)闭包的使用
Swift进阶文章汇总1.什么是闭包闭包是一个捕获了上下文的常量或者是变量的函数。闭包是 引用类型闭包分为以下几种:闭包表达式尾随闭包逃逸闭包自动闭包函数是一种特殊的闭包,函数不会捕获值。闭包可以当做变量,也可以当做参数传递2. 闭包表达式闭包表达式就是一个匿名函数,从上下文中捕获 变量和常量。闭包表达式是是swift的语法,使用闭包表达式能更简洁的传达信息。比如:{ (age: Int) in return age }优点:利用上.原创 2020-12-27 14:39:10 · 240 阅读 · 0 评论 -
swift进阶(三)swift指针
Swift进阶文章汇总swift中的指针分为两类typed pointer 指定数据类型指针,即 UnsafePointer<T>,其中T表示泛型raw pointer 未指定数据类型的指针(原生指针) ,即UnsafeRawPointerswift与OC指针对比如下:原生指针原生指针:是指未指定数据类型的指针,有以下说明对于指针的内存管理是需要手动管理的指针在使用完需要手动释放原生指针的使用//原生指针//对于指针的内存管理是需要手动管理的//.原创 2020-12-20 18:24:30 · 515 阅读 · 0 评论 -
swift进阶(二):swift方法的调用
结构体结构体的常用写法//***** 写法一 *****struct QTeacher { var age: Int = 18 func teach(){ print("teach") }}var t = QTeacher()//***** 写法二 *****struct QTeacher { var age: Int func teach(){ print("teach") }}var原创 2020-12-20 16:04:54 · 1204 阅读 · 0 评论 -
Swift进阶文章汇总
Swift进阶(一):类和属性原创 2020-12-12 14:15:53 · 349 阅读 · 0 评论 -
Swift进阶(一):类和属性
1、类SIL在底层流程中,OC代码和SWift代码时通过不同的编译器进行编译,然后通过LLVM,生成.o可执行文件,如下所示OC中通过clang编译器,编译成IR,然后再生成可执行文件.o(即机器码)swift中通过swiftc编译器,编译成IR,然后再生成可执行文件下面是Swift中的编译流程,其中SIL(Swift Intermediate Language),是Swift编译过程中的中间代码,主要用于进一步分析和优化Swift代码。如下图所示,SIL位于在AST和LLVM IR之间原创 2020-12-12 14:14:40 · 660 阅读 · 1 评论 -
OpenGLES初探(四)Swift将GLKit中矩阵传递给glUniformMatrix4fv
此代码使用的Swift4//在GLSL文件中获取投影矩阵let projectionMatrix = glGetUniformLocation(self.myProgram, "projectionMatrix")//初始化一个投影矩阵,并赋值单元矩阵var _projectionMatrix : GLKMatrix4 = GLKMatrix4Identity //设置透视投影 _projectionMatrix = GLKMatrix4MakePerspective(GLKMath原创 2020-08-02 17:51:27 · 480 阅读 · 1 评论 -
swift指针的操作
这个人贼懒,但是还想方便以后查看,请点这个链接https://www.jianshu.com/p/e90393ba2aea原创 2020-08-01 15:58:56 · 104 阅读 · 0 评论 -
Swift App状态恢复
原创Blog位置:https://blog.csdn.net/hello_hwc/article/details/45146305前言:对于一个app来说,没有办法保证每次都是用户正常关闭(双击home,然后关闭)。有可能是用户把app切换到后台,然后由于内存的原因,IOS系统选择关闭掉应用。这时候,就是状态恢复使用的场景。App应当做到的是,用户没有察觉到App在后台被IOS Ki...转载 2019-04-28 14:52:08 · 389 阅读 · 0 评论 -
swift4 远程推送之将获取到的devicetoken转成String
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { // 第一次运行获取到DeviceToken时间会比较长! // 将deviceToken转换成字符串,以便后续使用 ...原创 2019-04-11 15:59:57 · 1879 阅读 · 0 评论 -
Swift4 判断某段时间是周几
//判断某段时间是周几 private func getweekDay(_ date : Date) ->String{ let interval = Int(date.timeIntervalSince1970) + NSTimeZone.local.secondsFromGMT() let days = Int(inter...原创 2019-04-10 11:05:03 · 890 阅读 · 0 评论 -
Swift4 正则表达式
基本字符 (单个字符)不需要转义的字符类别 符号 大写字母 ABCDEF...XYZ 小写字母 abcdef...xyz 数字 0123456789 其他 `~!@#%&;:'",<>/ 需要进行转义的其他字符转义方法 符号 双反斜杠转义 『\\』 $^*()-=+[{]}|.? 三反斜杠转义 『\\...原创 2019-03-22 11:51:26 · 457 阅读 · 0 评论 -
Swift4 extension扩展中属性的set(objc_setAssociatedObject)和get(objc_getAssociatedObject)
swift4 在extension中如果正常声明了一个属性(如:var a : String = ""),当使用a变量时有可能是nil,导致程序直接崩溃。一般正确的方式是使用关联对象。声明属性:var message : UnsafePointer<String>? = nil属性赋值:objc_setAssociatedObject(self, &...原创 2019-03-25 11:20:43 · 1279 阅读 · 0 评论 -
消除警告 'substring(from:)' is deprecated: Please use String slicing subscript with a 'partial...
swift3 消除警告 'substring(from:)' is deprecated: Please use String slicing subscript with a 'partial range from' operator.Swift3废除了subString(from\to\with:)字符串截取方法。而截取方法改成了:let newStr = String(str[....原创 2019-02-14 10:26:56 · 4203 阅读 · 0 评论 -
swift4.0 Xcode9 framework加载xib文件
let bundle = Bundle.init(identifier:"你的framework的BundleId")let viewController = 你的ViewController.init(nibName:"XIB的名字",bundle:bundle)这样就可以在项目中加载xib文件了原创 2017-11-21 18:20:46 · 1224 阅读 · 0 评论 -
swift4 防止button重复点击
swift4中的runtime机制的initialize()这个方法已经被废弃了 所以需要吧自己写的那个方法,在Appdelegate 中调用此方法import UIKit@UIApplicationMainclass AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func applic...原创 2018-03-07 15:01:51 · 1314 阅读 · 0 评论 -
swift4 扫描框聚焦和拉近镜头
//镜头聚焦if (videoCaptureDevice.isFocusModeSupported(.autoFocus)){ do { try videoInput?.device.lockForConfiguration() } catch{ } videoInput?.device.focusMode = .autoFocus ...原创 2018-03-06 11:13:28 · 892 阅读 · 0 评论 -
swift4 设置扫描框的扫描区域
扫描区域是根据rectOfInterest属性设置的,但是这个属性里的参数是非常恶心的,因为CGRect中的x,y进行了调换,width和height进行了调换,而且参数必须是比例let kMargin = 40let scanViewW = UIScreen.main.bounds.width - CGFloat(kMargin * 2)let scanViewH = UIScreen.main...原创 2018-03-06 11:21:54 · 710 阅读 · 0 评论 -
swift4 String 转 Unicode
Swift Unicode的格式是 "\u{n}" n是16进制的数,比如"\u{f602}",这只占用一个字符,但是数据库里返回的是"f602"字符串,用的时候需要转成Unicode类型。这需要把"f602"转成16进制数,然后再转成Unicode。话不多说直接上代码:let a = "f602"let b = Int(a,radix:16).map{String(UnicodeScalar(...原创 2018-07-12 16:09:17 · 1690 阅读 · 0 评论 -
Swift4 Alamofire 网络请求实现同步化
Alamofire 所有的请求都是异步,由于业务原因,需要实现同步化,找了n多个资料,无非就是在线程上做手脚, 我看大多数都是使用的信号量进行拦截线程的。我是添加的responseJSONSync 方法同步进行获取数据的。啥都不说了,盘就是了: //同步获取JSON数据 public func responseJSONSync(queue: DispatchQueue? = nil,...原创 2019-01-17 18:03:09 · 1897 阅读 · 0 评论 -
Swift4 关键字之 @discardableResult
//表示取消不使用返回值的警告 @discardableResult@discardableResult open func executeUpdateLocal(_ a:A?,b : B)->Bool {}原创 2019-02-14 16:02:36 · 2339 阅读 · 0 评论 -
swift与OC在frameWork中混编时,在桥接文件中导入OC的.h文件时报错Include of non-modular header inside framework module......
错误是:Include of non-modular header inside framework module '***': '/Users/***/Documents/swift4/***/***/***/UDP广播/***.h'解决方法是:确保头文件作为框架的公共头文件的一部分公开可用。转到tagert - >build phases - >Headers 并拖动以...原创 2019-02-22 10:05:15 · 1858 阅读 · 0 评论 -
Swift4 string to data 时,使用GB2312编码
let enc = CFStringConvertEncodingToNSStringEncoding(UInt32(CFStringEncodings.GB_18030_2000.rawValue)) let data = str.data(using: String.Encoding(rawValue: enc))原创 2019-02-22 11:03:26 · 929 阅读 · 0 评论 -
swift4 根据路径绘画SVG
根据上司要求把所有的图片都改成SVG格式的,然后我就在网上找了一些类库,比如说SVGKit类库,网上也有好多它的使用,但是我用的swift,SVGKit是OC的库,这时也有人会说SVGKit也可以在swift项目中使用,但是我搞了一天没成功,可能是我太笨了,然后我就自己写了一个根据路径串在画板上把这张图画出来,话不多说,直接上代码。ViewController类中创建一个ImageView,将...原创 2017-11-08 15:36:00 · 573 阅读 · 0 评论