Swift
Swift
Lea__DongYang
趟的坑多了
展开
-
Swift4.0 获取类名 类名.self
今天完善夫特架子,导航里面用夫特获取类名的时候,突然很懵逼,居然木有。类(OC),只好自己研究下了,写了一个获取类名的扩展名,后来发现有个.self的方法,也尝试了下哈,看下图print(UIScreenEdgePanGestureRecognizer().ClassName)print(UIScreenEdgePanGestureRecognizer.self)print(type(o...原创 2018-10-19 17:15:36 · 5496 阅读 · 0 评论 -
iOS13 适配 附:获取DeviceToken的Swift版本
iOS 13 如期而至,虽然正式版还没出来,但是适配工作可以开展起来啦。在适配 iOS 13 过程中,遇到了如下一些问题。1. UITextField 的私有属性 _placeholderLabel 被禁止访问了遇到的第一个崩溃是修改UITextField的placeholder的颜色,历史遗留代码如下:[_textField setValue:self.placeholder...原创 2019-08-13 10:21:13 · 5348 阅读 · 0 评论 -
swift4.0 throw错误处理
对于大部分现代化面向对象的编程语言都拥有结构化的错误处理语法特性,swift也不例外。当我们在一个方法或函数中实现某些功能时,如果遇到错误的用户输入则可能导致严重的异常问题,此时我们可以选择通过抛出异常的方式,将此错误送给函数调用者。我们常用 try-catch 结构,不过在swift编程语言中没有引入专门的 try 语句块,而是直接调用之前的 do 语句块,仅仅将 try 作为抛出异常...转载 2019-07-22 18:33:15 · 1248 阅读 · 0 评论 -
swift3.0 enumerated 遍历数组 拿到下标和元素以及反向遍历
1.要遍历数组同时拿到下标值和元素,可通过元祖进行遍历1.1 定义数组一个字符串数组如下let array: [String] = ["a","b","c","d"]1.2 利用元祖进行遍历for (index,value) in array.enumerated() { print(index,value)}1.3 输出结果为0 a1...原创 2019-04-04 11:32:36 · 2073 阅读 · 0 评论 -
Swift 中的 var `property`
今天又发现了一个Swift愉快的codingTip:就是Swift 中的 var `property`在OC中对系统关键字的处理是比较繁琐的,被系统占用的名字是不可以使用的but,Swift只需要加一个符号`就可以搞定原创 2018-11-27 19:03:59 · 441 阅读 · 0 评论 -
Swift - OC Tips
最近在尝试oc和swift的混编,一是:swift是大势所趋,终究是要学习的。二是:项目目前架构是oc架构,全部重构为swift也不现实。下面是混编中遇到的一些问题和总结:1.在oc项目中第一次创建swift文件的时候,会弹框提示是否要创建桥接文件。当然要创建了,否则还要自己动手创建和配置。教程网上很多,就不重复了。2.oc的代码中需要调用swift的文件,需要导入隐式头文件:xxx-...转载 2018-11-14 11:33:07 · 217 阅读 · 0 评论 -
Swift&iOS12 获取ssid的问题
废话不说,直接上代码: private func fetchNetInfo() -> [String : AnyObject]{ let interfaceNames = CNCopySupportedInterfaces() var SSIDInfo = [String : AnyObject]() guard int...原创 2018-10-30 14:34:25 · 625 阅读 · 0 评论 -
swift 异常捕获try catch的使用
新的异常捕获机制更新于 WWDC 2015上发布的新的Swift2.0,异常的try-catch机制有助于我们更快的定位出错原因所在,此处简单说明下try-catch机制的用法. 1.定义枚举异常值 首先我们可以创建自己的异常枚举值,这要实现ErrorType协议,只不过这个协议是空的,我们加上就好. 2.抛出异常 我们可以在方法中抛出异常,定义抛出异常的方法...转载 2018-10-25 18:11:11 · 2529 阅读 · 0 评论 -
Swift 泛型
泛型能够让开发者编写自定义需求已经任意类型的灵活可用的的函数和类型。能够让我们避免重复的代码。用一种清晰和抽象的方式来表达代码的意图。1.泛型解决的问题下面是一个非泛型的例子func swapTwoIntValue(inout a:Int,inout b:Int){ //使用inout关键字可以修改传入的数值的原始值。 let tempValue = a a ...转载 2018-10-25 15:11:14 · 170 阅读 · 0 评论 -
Swift 浅谈Struct与Class
讨论Struct与Class之前,我们先来看一个概念:Value Type(值类型),Reference Type(引用类型):1. 值类型的变量直接包含他们的数据,对于值类型都有他们自己的数据副本,因此对一个变量操作不可能影响另一个变量;2. 引用类型的变量存储对他们的数据引用,因此后者称为对象,因此对一个变量操作可能影响另一个变量所引用的对象。这就是我们之前博客中提到的深拷贝...转载 2018-10-25 10:51:52 · 261 阅读 · 0 评论 -
swift 声明变量的?和!的区别
Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。如果在使用变量之前不进行初始化就会报错:var stringValue : String //error: variable 'stringValue' used before being initialized//let hash...转载 2018-10-16 20:23:36 · 315 阅读 · 0 评论 -
xib写 tableHeadView , frame 不准确的解决方法
打印 headView 的信息后可以看到 autoresize 的属性为 W+H,这个属性决定了 headView会根据 tableview 动态调整宽高所以我们只要将这个动态调整禁用掉就可以解决这个问题了禁用方法: 设置autoresizingMask的属性为默认值 0, OC 为UIViewAutoresizingNoneprivate lazy var headView: ...原创 2018-07-26 17:10:14 · 835 阅读 · 0 评论