
Swift
Z_oneday
一个灵魂放飞的程序员,致力于成为一名IT界的大导演。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Swift 4.0学习之:final关键字
final 关键字很多语言都有final这个关键字,Swift中,这个关键字可以用来修饰 class、func、var。表示被修饰的对象无法被继承。原创 2018-03-15 09:20:52 · 816 阅读 · 0 评论 -
Swift 4.0学习之:数据类型转换
前提小知识:在Swift中,如果想要使用某一个类(cocoapods导入的三方库除外),是不用导头文件的,因为Swift新增了一个OC中没有的概念,叫“命名空间”。只要在同一个命名空间中的资源都是共享的,而且默认情况下,项目名称就是命名空间。数据类型转换在Swift中,没有隐式数据转换,所有的转换必须显示,举例如下://在OC中,所有数据都存在隐式转换int a = ...原创 2018-03-14 09:25:07 · 4267 阅读 · 0 评论 -
swift 4.0学习之:可选绑定
可选绑定在Swift中,返回值或者数据类型后面加 ?表示可选类型,值可以为空,但是后面加 !的话,表示告诉编译器,这个是一定有值的,相当于强制解析,如果没有值的话,就会崩。这是前提。实际应用举例如下:let url = URL.init(string: "http://www.baidu.com")//正常写惯了OC的话,为了保证程序的稳定性,强制解析前一定会加判断,通常会这么写i...原创 2018-03-14 09:35:25 · 989 阅读 · 0 评论 -
Swift关于collectionView的坑
最近在用Swift写项目,在用collectionView写一个频道定制的页面。结果碰到一个很奇葩的问题,在这里记录一下。设计图是这样:这里我是用collectionViewCell 上面放一个Label去实现的。结果出来的样子在Label右边多了一条黑线,并且是跟着Label走的。设置Label背景颜色clear,黑线就没了,只要设置有颜色。黑线就出来了。样子是这样的:奇怪的是,这黑线有的有,有...原创 2018-02-08 10:31:00 · 1513 阅读 · 0 评论 -
Swift报错Swift Language Version
报错如下:The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. This setting can be set in the build settings editor解决方案如下:原创 2018-02-06 15:20:08 · 978 阅读 · 0 评论 -
Swift 4.0 学习之基础摘要二
小知识: 在Swift中,监听按钮点击的方法不能是私有方法,因为按钮点击事件的调用是由 运行循环 监听并且以 消息机制 传递的。因此,按钮监听函数不能设置为 private。 再来一个小知识: 在Swift中,类方法里是不允许定义静态变量的一:构造方法 知识点:Swift中,如果定义属性的时候没有初始化,那么必须在后面加上 “ ?”。但是只要在构造方法中,对属性进...原创 2018-01-19 13:41:17 · 504 阅读 · 0 评论 -
Swift 4.0 学习之基础摘要一
前提小知识:在Swift中,如果想要使用某一个类(cocoapods导入的三方库除外),是不用导头文件的,因为Swift新增了一个OC中没有的概念,叫“命名空间”。只要在同一个命名空间中的资源都是共享的,而且默认情况下,项目名称就是命名空间。一:数据类型转换在Swift中,没有隐式数据转换,所有的转换必须显示,举例如下://在OC中,所有数据都存在隐式转换int ...原创 2018-01-15 16:08:25 · 733 阅读 · 0 评论 -
Swift 4.0学习之:@discardableResult关键字
///表示取消不使用返回值的警告@discardableResult func isLogin(jump: Bool, success: Closure = nil, failed: Closure = nil) -> Bool原创 2018-03-21 14:39:30 · 3520 阅读 · 0 评论 -
Swift 4.0学习之:逃逸与非逃逸闭包
刚看了一些博文资料。想要把逃逸闭包和非逃逸闭包简洁明了的阐述一下。如果有哪位大神觉得我总结的有偏差。欢迎留言指正~核心的观点: 非逃逸闭包在函数执行的时候就执行了。逃逸闭包是函数执行之后才执行(这样说可能不太严谨,表达能力有限,看下面的例子就明白了。)举一个简单的例子://这是一个非逃逸闭包,闭包doBlock 在函数执行的时候就调用了func methodName...原创 2018-03-23 15:55:55 · 997 阅读 · 0 评论 -
iOS UIscrollView上添加View,设置约束不显示解决办法
不论是OC还是Swift都会遇到这样的问题,在scrollorView上添加view,给view设置约束后,run一下发现。view并没有显示,尤其是代码看起来好像没问题,举个例子如下://这是用Swift举的例子。跟OC是一样的。private func creatUI() { contentView.addSubview(scrollView) scrol...原创 2018-04-01 15:44:56 · 7124 阅读 · 1 评论 -
Swift学习之:设置渐变色
在开发中,常常有这样的需求:给button添加渐变色、给label添加渐变色等等,因此只需要写一个UIView的类扩展,这些继承自UIView的类需要用的时候就能直接调用了。 代码如下:extension UIView { @discardableResult func setGradient(colors: [UIColor], startPoint: CGPoint ...原创 2018-04-12 11:25:23 · 3041 阅读 · 1 评论 -
Swift中文输入法限制字数以及常用字符串处理方法
有个常用需求是这样:例如修改昵称时,要求输入不超过10个字符。(中英文数字都算一个字符)。如果用textField自带的textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool 这个代理方法的话,会有一个问题...原创 2018-04-12 16:33:19 · 1705 阅读 · 0 评论 -
Swift 4.0学习之:分支语句
分支语句在C和OC中,有一个非0即真的概念,但是Swift没有,举例如下:int num = 10;if (num) {//在OC中,是会走到这里的,而且如果判断为真只执行一个语句的话,外面的大括号是可以去掉的}let num = 10if num {//但是在Swift里,首先if后面跟的条件可以不加小括号,但是后面的大括号绝对不能省略;//第二点是,在Swift...原创 2018-03-14 09:26:38 · 184 阅读 · 0 评论 -
Swift 4.0学习之:循环语句
循环语句OC中常用的普通for循环 for(int i=0;i<10;i++){}在Swift3.0已经移除掉了,现在Swift用的for in 循环很具有Swift特色,举例如下:for i in 0...10 {//0...10表示包含头尾的0到10之间所有的整数//0..<10表示包含头不包含尾的0到9之间所有的整数//0...10这种条件区间内不能出现任何的空...原创 2018-03-14 09:31:16 · 13437 阅读 · 0 评论 -
Swift 4.0学习之:单例
单例Swift中的单例非常简单,往小了说,用 let 去修饰,写在类外,就是一个全局可用的单例。 如果想要像OC一样写一个单例类,也非常的简单,如下//单例类import UIKit//仿OC写法class danli: NSObject { static let instance: danli = danli() class func sharedDanli(...原创 2018-03-15 09:19:32 · 12655 阅读 · 0 评论 -
Swift 4.0学习之:@objc的使用
@objc的使用 知识点: 在Swift代码中,使用@objc修饰后的类型,可以直接供Objective-C调用。 可以使用@objc修饰的类型有以下几种: 1、未嵌套的类 2、协议 3、非泛型枚举(仅限于原始值为整形的类型) 4、类和协议中的属性和方法 5、构造器和析构器 6、下标注意点: Objective-C中所有的类都继承自NSO...原创 2018-03-15 09:18:17 · 9020 阅读 · 0 评论 -
Swift 4.0学习之:动态加载控制器
动态加载控制器前提条件: 在实际开发中,经常会碰到一个需求是这样,当遇到节假日的时候,tabbar上的图片和标题都需要做相应的更换,节假日一过,就换回来。更过分的是,连tabbar上展示的控制器ViewController都要求更换。这样的话,就需要跟服务器配合,写一个接口,每次打开APP的时候,请求一下这个接口,以JSon的格式返回需要展示的控制器以及相应的标题名和图片名。 举个例子,...原创 2018-03-15 09:16:42 · 754 阅读 · 0 评论 -
Swift 4.0学习之:动态获取命名空间
动态获取命名空间前提知识点: 先说一下获取命名空间的作用,在Swift的项目中,打印当前类的时候,会发现,相比OC,类名前多了一个命名空间。因此,在调用NSClassFromString(“”)这类方法的时候,在类名前,必须加上命名空间. 。举个小例子如下://项目名称:starProduct//要获取的类:AAAViewControllerlet aaa = NSClassFro...原创 2018-03-15 09:15:29 · 693 阅读 · 0 评论 -
Swift 4.0学习之:构造方法
构造方法 知识点:Swift中,如果定义属性的时候没有初始化,那么必须在后面加上 “ ?”。但是只要在构造方法中,对属性进行了初始化,那么就不用写“ ?”了。Swift中,有方法重载的概念,这种方式比较优雅,可惜OC里没有,因为OC不允许方法名相同,在Swift里,允许有同名的方法,只要形参或返回值不一样即可。注意点: 如果自定义了构造方法,并且没有重写父类的构造方法,那么实...原创 2018-03-15 09:14:00 · 400 阅读 · 0 评论 -
Swift 4.0学习之:setter--getter--方法
setter–getter–方法Swift的setter和getter方法跟OC的这两个方法大致一样,但是用法跟OC还是有区别的,比如上面说的懒加载。还有OC中常用的重写setter方法,在Swift里是这么用的:var aaa: String? { didSet { //设置完之后调用这个方法,Swift中用这个方法来代替OC中的重写setter方法 }}...原创 2018-03-14 10:47:07 · 1374 阅读 · 0 评论 -
Swift 4.0学习之:懒加载
九: 懒加载懒加载是一个在项目中特别常用的东西,在OC中,一般是通过重写getter方法来实现,但是在Swift里,多了一个叫 lazy 的修饰符,多么形象生动的命名。具体应用举例如下://在Swift中只需要通过 “lazy” + “=” + “闭包” 就可以实现懒加载lazy var dataList:[Any] = {//而且看这里,如果闭包是用来做懒加载的话,那么()-...原创 2018-03-14 10:45:22 · 3116 阅读 · 0 评论 -
Swift 4.0学习之:闭包
闭包说到闭包,用法跟OC的block是一样一样的,基本格式是 { ()->() in }通常是放到函数的实参里,举一个实际应用的例子:目标:创建一个scrollorView,上面有10个按钮,要求有一定的可复用性,可维护性,可扩展性。代码如下:override func viewDidLoad() { super.viewDidLoad() ...原创 2018-03-14 09:56:51 · 485 阅读 · 0 评论 -
swift 4.0学习之:函数语句
函数Swift的函数写法最基础的模式如下://基础表现形式func 函数名(传入参数,多个用逗号隔开)-> 返回值类型 {//如果没有返回值,可以填 Void,也可以 -> () ,也可以什么都不写,直接函数名(传入参数)后直接跟大括号}//实际应用中传入参数可以有以下三种写法func sum(a: Int,y b: Int,_ c: Int) { p...原创 2018-03-14 09:52:18 · 196 阅读 · 0 评论 -
swift 4.0学习之:字符串
字符串OC中的字符串是一个对象,继承于NSObject,但是Swift中的字符串是一个结构体,因此Swift中的字符串性能比OC中要高,实际应用举例如下:var str1 = "zyt"var str2 = "ssg"//单纯拼接两个字符串直接加就可以str1 += str2//如果两个字符串类型不一致的时候,可以用\()来拼接,如下let age = 25let name...原创 2018-03-14 09:50:45 · 533 阅读 · 0 评论 -
Swift 4.0学习之:数组和字典
数组和字典数组和字典的创建和OC基本一致,不用写前面的@而已,但是遍历字典的时候,Swift由于有元祖这个东西在,改进的方便了一点,,举例如下:let dictionay = ["一":1,"二":2]//如果是OC的话,遍历这个字典会这么写,当然swift这么写也可以for key in dictionay.keys { print(key)}//但是Swift还有一...原创 2018-03-14 09:37:12 · 1100 阅读 · 1 评论 -
swift4.2新特性
swift4.2新特性CaseInterable协议条件一致性优化Equatable 和Hashable更加安全的Hashable随机数生成检查平台条件#warning和#error编译指令removeAll(where:)allSatisfy()toggle()last(where:)和lastIndex(where:)swift4.2新特性C...原创 2018-08-27 09:45:57 · 1893 阅读 · 0 评论