随笔分类 - Swift
摘要:override func viewDidLoad() { super.viewDidLoad() if let imageView = self.findNavLineView(view: navigationBar) { // 在分隔线上添加一个跟分隔线大小一模一样的View, 然后修改颜色即可 let navBarLineView = UIView() navBarLineView.fram
阅读全文
摘要:Custom scheme URL 在WKWebView中默认是不支持的 (但Safari可以). 我们可以通过NSError来进行一些处理从而使得程序可以正常跳转: Note: 在iOS9中,如果你要想使用canOpenURL, 你必须添加URL schemes到Info.plist中的白名单,
阅读全文
摘要:使用WKWebView的时候会出现明明自己做的一些页面有提示框, 为什么使用别人的页面提示框总是不显示, 其实很大部分原因是因为该提示框是通过JS调用的, 需要实现WKUIDelegate来进行监听 这里需要注意, completionHandler一定要调用, 否则会出错!
阅读全文
摘要:今天用Swift写了个视图,在视图上加个手势,如下所示: panGestureRecognizer = UIPanGestureRecognizer(target: self, action: "beginDragged:") addGestureRecognizer(panGestureRecog
阅读全文
摘要:因为 Playground 本身会持有所有声明在其中的东西,因此本节中的示例代码需要在 Xcode 项目环境中运行。在 Playground 中可能无法得到正确的结果。 不管在什么语言里,内存管理的内容都很重要,所以我打算花上比其他 tip 长一些的篇幅仔细地说说这块内容。 Swift 是自动管理内
阅读全文
摘要:如何抛出异常 如何获取并处理异常? 不处理异常 如果我不想处理异常怎么办,或者说,我非常确定某个方法或者函数虽然声明会抛出异常,但是我自己知道我在使用时候是绝对不会抛出任何异常的。这种情况下 我们可以使用 try! 当然,如果你使用 try!,而你的方法或者函数抛出了异常,那么你会得到一个运行中异常
阅读全文
摘要:Swift方式的延迟加载 而在Swift中,你只需一行代码即可实现此机制: 简单、简洁,直入主题。 但你得记住,你必须使用var关键字来定义延迟加载的属性,不能使用let关键字,因为常量必须在实例构建时赋值。 如果你想给延迟加载加上一些逻辑处理,Swift允许你在属性后面定义一个闭包调用(闭包的返回
阅读全文
摘要:Objective-C 和 Swift 在底层使用的是两套完全不同的机制,Cocoa 中的 Objective-C 对象是基于运行时的,它从骨子里遵循了 KVC (Key-Value Coding,通过类似字典的方式存储对象信息) 以及动态派发 (Dynamic Dispatch,在运行调用时再决定
阅读全文
摘要:/* Swift中函数命名的智慧 */ // 1.一般情况下, 我们写一个函数是这么写的 func sayHello(name: String , greeting: String) { print("\(greeting), \(name)") } // 调用的时候是这样的, 这个函数这样读起来并不是很符合人类的阅读习惯 sayHello("Rinpe", greeting: "H...
阅读全文
摘要:/* 隐式可选型 */ // 隐式可选型同样可以赋值为nil, 而且在后面对这个变量的使用也可以不用进行解包 var value: String! = nil // print(value) 这行代码会报错, 所以隐式可选型在值为nil的时候进行操作会出现错误 // 上面代码相当于print(value!), 对一个为nil的可选型进行强制解包后使用, 报错! value = "Value" ...
阅读全文
摘要:/* 下面是介绍Optional Chaining 和 Nil-Coalesce */ // Optional Chaining (可选链) if let errorMessage = errorMessage { errorMessage.uppercaseString } // 这种写法完全等价于上面的写法, 当errorMessage有的时候, 才会去执行"?"后面的代码, 否则...
阅读全文
摘要://: Playground - noun: a place where people can play import UIKit /* Swift中nil代表是是另外一种类型, 而不像OC那样, 任何对象都能赋值为nil, Swift中的nil就是空, 什么都没有的意思, 当一个变量有可能存在空值的时候, 必须显式的申明为可选型, 否则不能直接赋值为nil, 因为无论是Int, Strin...
阅读全文
摘要:在Swift开发中,新建了一个UIViewController的子类出现“No such module 'Cocoa' 的错误, 头部是import cocoa.. 原因很简单:在建立新的File文件的时候,选择的是“OS X”的项目,其实应该选择“iOS”的项目。所以删除错误文件,重新建立一个新的
阅读全文
摘要:import Foundation class Test: NSObject { // 提供单例实例 static let shareInstance = Test() // 私有化构造方法 override private init() {} } import Foundation let tes
阅读全文
摘要:guard语句和if语句有点类似,都是根据其关键字之后的表达式的布尔值决定下一步执行什么。但与if语句不同的是,guard语句只会有一个代码块,不像if语句可以if else多个代码块。 那么guard语句的作用到底是什么呢?顾名思义,就是守护。guard语句判断其后的表达式布尔值为false时,才
阅读全文
摘要:在一些语言中,有try/finally这样的控制语句,比如Java。 这种语句可以让我们在finally代码块中执行必须要执行的代码,不管之前怎样的兴风作浪。 在Swift 2.0中,Apple提供了defer关键字,让我们可以实现同样的效果。 func checkSomething() { pri
阅读全文
摘要:语言 使用美式英语拼写以匹配苹果公司的API 优选: var color = "red" 不建议使用: var colour = "red" 间隔 使用2个空格进行缩进而不是使用Tab,这样可以节省空格,阻止换行。确保在Xcode的配置项中进行了设置。 方法的花括号以及其它花括号(if/else/s
阅读全文
摘要:同iOS以往每个迭代一样,iOS 9带来了很多新特性。UIKit框架每个版本都在改变,而在iOS 9比较特别的是UIStackView,它将从根本上改变开发者在iOS上创建用户界面的方式。本文将带你学习怎样使用UIStackView创建用户界面。 本文假定你已经熟悉Auto Layout基础。不熟悉
阅读全文
摘要:在Swift 中 ViewController 默认构造方法不关联同名的xib文件 在使用OC的时候,调用ViewController的默认构造函数,会自动关联到一个与ViewController名字相同的xib文件上, 这样无疑方便了开发者,减少了代码量。但不知道为什么,在swift中,新建Vie
阅读全文

浙公网安备 33010602011771号