swift
文章平均质量分 73
Philm_iOS
这个作者很懒,什么都没留下…
展开
-
Swift中结构体-Struct和类-Class的区别
今天这篇文章要來介紹 Swift 中 struct 和 class 有什麼不一样的地方讨论Struct与Class之前,我们先来看一个概念:Value Type(值类型),Reference Type(引用类型):值类型的变量直接包含他们的数据,对于值类型都有他们自己的数据副本,因此对一个变量操作不可能影响另一个变量;引用类型的变量存储对他们的数据引用,因此后者称为对象,因此对一个变量...转载 2018-07-17 11:49:21 · 1108 阅读 · 0 评论 -
swift 中的KVO用法
swift 中的KVO用法原文地址:http://blog.csdn.net/riven_wn/article/details/62044727 KVO KVO (Key-Value Observing) KVO 是 Objective-C 对观察者模式(Observer Pattern)的实现。也是 Cocoa Binding 的基础。当被观察对象的某个属性发生更改时,观察者对象...转载 2018-08-01 10:34:10 · 517 阅读 · 0 评论 -
Swift可选类型(Optional)的介绍和使用场景
原文地址: https://www.jianshu.com/p/f2e25f78f5a2可选类型(Optional)的介绍可选类型(Optional)是Swift新添的对象。它允许变量或常量中没有值(被设为nil),主要是为了解决对象变量或常量为空的情况。 Objective-C与Swift语言对于nil的不同理解:Objective-C中的nil:表示缺少一个合法的对象,是指向...转载 2018-08-06 11:27:35 · 3137 阅读 · 0 评论 -
swift中delegate的使用注意
swift中delegate的使用注意原文连接:https://link.juejin.im/?target=http%3A%2F%2Fmarkmiao.com%2F2017%2F03%2F10%2Fswift%E4%B8%ADdelegate%E7%9A%84%E4%BD%BF%E7%94%A8%E6%B3%A8%E6%84%8F%2Fdelegate是iOS开发中一种非常常用的设计...转载 2018-08-14 10:46:01 · 2001 阅读 · 0 评论 -
Swift 4 中的字符串
原文地址英文版链接 这个系列中其他文章: 1. Swift 1 中的字符串 2. Swift 3 中的字符串本文节选自我们的新书《高级 Swift 编程》「字符串」这一章。《高级 Swift 编程》新版本已根据 Swift 4 的新特性修订补充,新版现已上市。 所有的现代编程语言都有对 Unicode 编码字符串的支持,但这通常只意味着它们的原生字符串类型可以存储 Unicode...转载 2018-08-15 10:30:03 · 1207 阅读 · 0 评论 -
Swift中的let和var背后的编程模式
Swift中的let和var背后的编程模式简介Swift中有两种声明“变量”的方式,这两种方式分别使用let和var这两个关键字。这应该是借鉴了Scala,因为它们和Scala的val和var有相同的作用。let被用于声明不变量,var被用于声明变量。不变量的值一旦被定义就不能再改变,变量则可以在声明之后被随意赋值。在其它一些如Java,C这样的命令式编程语言中也有不变量的概念。但...转载 2018-08-03 10:24:50 · 1408 阅读 · 0 评论 -
自动闭包@autoclosure
自动闭包@autoclosure什么是自动闭包自动闭包就是把一个表达式直接自动闭合一个闭包,这样看起来就比较好看了,难到只是为了好看吗?错了,这还是苹果优化性能的方法。为啥这么说类,你一会就会明白了。func sendRequest(argc1: String, arc2: String, completionHandle: () -> Bool) { i...转载 2018-08-13 10:42:49 · 1142 阅读 · 0 评论 -
swift 命名空间
swift 命名空间1、在oc中我们通过类名能非常方便的动态到创建对象。- (id)productWithClassName:(NSString *)claName{ class cla = NSClassFromString(claName); if (cla) { id obj = [[cla alloc] init]; re...原创 2018-07-31 10:27:26 · 527 阅读 · 0 评论 -
Swift语法对编译速度的影响
Swift语法对编译速度的影响使用Swift初期会惊艳于它强大的表达力,发现原来很啰嗦的逻辑可以用一两句话写完时,工具的强大导致自己会情不自禁的写一些“聪明”的代码。但是Swift毕竟是一个婴儿时期的语言,编译器对于这些极简的代码的处理能力是一个容易被忽略的副作用。在混编Swift两年后,工程的编译速度到了忍无可忍的程度。通过网上搜寻“如何提高Xcode编译速度”把能做的优化都做了之后...转载 2018-08-16 10:34:49 · 703 阅读 · 0 评论 -
swift操作符的重载,自定义操作符
操作符的重载和自定义在objective-c上是不支持的,属于swift从别的语言中借鉴过来一种新的姿势。下面让我们一个矩形为例子一起在操作符的世界溜达一圈,一窥其中的风景吧。声明一个矩形结构体struct Rectangle { public var point:CGPoint = CGPoint.zero public var bouns:CGSize = CG...原创 2018-08-02 14:46:21 · 3025 阅读 · 0 评论 -
Swift 3.0 语法
//: Playground - noun: a place where people can playimport UIKitprint(“swift 我来了,来啊”)//let定义 常量 let name = “ak” // var 定义变量 var password = “11111” //Swift 并不强制要求你在每条语句的结尾处使用分号( ; ),当然,你也可以按照...原创 2018-07-31 10:25:18 · 214 阅读 · 0 评论 -
Swift guard 和 if的使用
guard 的优势Swift 2.0 带来了guard语句。但很多人还是不太理解guard的意义,特别是和 Swift 2.0 之前的简单if语句相比较。我们知道,所有的 guard 使用场景都可以用 if 来替代,那么为什么还要增加 guard 特性呢?其最最主要的原因还是 guard 语法的可读性更强。这里我们使用一个错误处理的例子,一个带有姓名和年龄的简单表格。使用guard实现,代...转载 2018-07-24 16:02:47 · 2142 阅读 · 0 评论 -
swift里 as、as!、as?区别
本文总结 as、as!、as? 这三种类型转换操作符的异同,以及各自的使用场景。as有保证的转换,从派生类转换为基类的向上转型(upcasts) 使用场合:从派生类转换为基类,向上转型(upcasts)class Animal {}class Cat: Animal {}let cat = Cat()let animal = cat as Animal消除二义性,...转载 2018-07-19 10:51:26 · 3538 阅读 · 0 评论 -
Swift与objective-c混编整理
swift项目中混编 objective-c1、新建一个 swift项目工程 2、创建一个 cocoa touch class 类, 语言选择 objective-c 点击next然后点 create之后会弹出如下弹窗 点击 Create Bridging Header创建桥接头文件。此时的项目工程文件文件如下: 3、检查build Settings -> swi...原创 2018-07-19 16:15:41 · 537 阅读 · 0 评论 -
Swift中的内存泄漏
原文地址在这篇文章中,我会解释什么是内存泄漏(memory leaks),讨论循环引用(retain cycles)和其他事物。内存泄露这确实是我们开发者经常面对的问题之一,我们的代码越来越复杂,随着app的增长,我们也带来了泄漏。内存泄漏会永久占用一部分内存,让它无法再使用。它是占据空间带来问题的垃圾。 有时候我们分配内存,却再也没有释放,并且也没有app引用去。因为...转载 2018-07-15 17:48:58 · 1492 阅读 · 0 评论 -
swfit自定义LOG
要在使用一个类文件中,定义全局方法//自定义打印日志func NXLog<T>(_ message: T, fileName: String = #file, methodName: String = #function, lineNumber: Int = #line){ //文件名、方法、行号、打印信息 #if DEBUG print("[...原创 2018-07-30 10:45:02 · 205 阅读 · 0 评论 -
swift协议使用整理
定义Protocol(协议)用于统一方法和属性的名称,而不实现任何功能。协议能够被类,枚举,结构体实现,满足协议要求的类,枚举,结构体被称为协议的实现者。实现者需要提供协议指定的成员,如属性,方法,操作符,下标等。简单使用1、 声明public protocol HumanProtocol { var name:String{get set} var...原创 2018-07-31 10:22:27 · 912 阅读 · 0 评论 -
Swift中 "..." 和 ".." 以及 "=="与"==="
1 “…” 和 “..”//0...5是一个闭区间[0,5]for index in 0...5 { print(index)//print "012345" } println("\n") //0..<5是一个前闭后开区间[0,5)for index in 0..<5 { print(index) //print "0转载 2018-07-31 10:24:15 · 6345 阅读 · 0 评论 -
Swift 4 泛型:如何在你的代码或App里应用泛型
原文链接问题 1:我能否写一个 Swift 函数用于查找在任意数组中存储的任意类型的任何实例对象的位置\索引。 问题 2:我能否写一个 Swift 函数用于确定在任意数组中存储的任意类型的任何实例对象的类型。我所说的 “任何类型”,包括自定义类型,比如我们自己定义的 Class 类型。提示:我知道我能够用 Swift Array 类型的内置方法,如 index 和 contains,但今...转载 2018-08-30 11:05:34 · 2544 阅读 · 0 评论