[译]Swift 4字符串的更新
又一年过去了,Swift String API又做了一些更改。Swift 4对String带来了一些很需要的改进以及简化。这些是我写的笔记,它记录了我的Swift字符串小抄关于Swift4需要做的改动。你可以在这里找到原来的和现在更新的指南以及Xcode playground:Swift String Cheat SheetXc
又一年过去了,Swift String API又做了一些更改。Swift 4对String带来了一些很需要的改进以及简化。这些是我写的笔记,它记录了我的Swift字符串小抄关于Swift4需要做的改动。你可以在这里找到原来的和现在更新的指南以及Xcode playground:Swift String Cheat SheetXc
Swift 3在Swift 3,使用substring()函数分割字符串let str = "1234,5678" let index = str.index(of: ",")! let newStr = str.substring(fr
Xcode 9 (iOS 11)注册推送消息报错:UIApplication.registerForRemoteNotifications() must be called from main thread only解决方法Swift 4DispatchQueue.main.async(e
iOS的AVFoundation内置了对二维码和条形码扫描的支持。使用AVFoundation扫描二维码的功能需要几件事:创建AVCaptureSession,用于捕获二维码创建预览捕获二维码成功后,委派回调来处理二维码的meta信息下面的例子是基于UIViewController开发的扫描二维码Controller,使用AVCaptureMetadataOutputObjectsDelegate
添加两个extension:可变集合添加shuffle()方法,打乱原来集合的元素顺序Sequence添加shuffled()方法,返回原序列乱序的数组Swift 4extension MutableCollection { /// 打乱集合里的元素 mutati
Swift 4和Foundation终于回答了如何用Swift来解析JSON的问题。目前已经有了许多优秀的库,但是看到一个全支持的解决方案是非常令人耳目一新的,它不仅易于使用且也提供了对复杂场景进行编码和解码所需的定制。值得注意的是,这里讨论的所有内容都适用于所有Encoder/Decoder实现,例如包括PropertyListEncoder。 如果你需要类似XML这样不同的
KVO 是 Objective-C 对观察者模式的实现。当被观察对象的某个属性发生更改时,观察者对象会获得通知。KVO实现依赖于Objective-C的Runtime,所以Swift需要使用@objc暴露api给Objective C。Swift目前没有内置原生实现的值观察系统,Swift 4的KVO使用dynamic属性来实现。被观察的类clas
Xcode 9.1报错信息如下:原因是Swift 4对String的API做了break change,统计字符数更改如下:Swift 4之前统计字符数:str.characters.count Swift 4str.count
Swift 4新增了Codable协议,它是一个组合协议,包含Encodable和Decodable两个协议。代码定义如下:/// A type that can convert itself into and out of an external repre
Swift 4对KeyPath做了很大的改进。改进后的为类型安全的KeyPath。Swift 2的KeyPath示例class Person: NSObject { var name: String = "" init(name: 
Swift 3切换为Swift 4,原来用于转换html为NSAttributedString的代码报错:Cannot convert value of type 'NSAttributedString.DocumentAttributeKey' to expected dictionary&nbs
Swift 4可以添加extension来把html转换为字符串。String添加扩展extension String { var html2AttributedString: NSAttributedString? {  
给UIImage添加extension(兼容Swift3 和Swift 4)extension UIImage { func scaled(withSize size: CGSize) -> UIImage { &nbs
Swift 3/4获取AppDelegate实例:func appDelegate() -> AppDelegate{ return UIApplication.shared.delegate as! AppDelegate}对于Swift < 3func appDelegate() -> AppDelegate{ return UIApplication.share