Tagged

Swift

Make programming simple things easy, and difficult things possible.-- Apple

Swift 5.1
Swift

Swift 5.1

又是一篇迟来的文章。主要是译自: What’s new in Swift 5.1。 阅读之前可以查看我之前总结的Swift 3 到Swift 5的新特性。 Swift5.1支持了SwiftUI, 可以看出本次的更新更多了是为了更好的“声明”UI。 改进自动生成的struct初始化方法 swift早期版本中支持了自动生成struct的初始化方法 struct User { var name: String var loginCount: Int = 0 } let piper = User(name: "Piper Chapman", loginCount: 0) Swift 5.1改进了初始化方法,如果属性有了初始值,初始化的时候可以省略。 let gloria = User(name: "Gloria

[译]Swift中的空字符串
Swift

[译]Swift中的空字符串

Swift 一个特色就是有很多的语法糖,初学可能觉得hold不住,实际用的时候倒是挺便利。 基于对此的喜爱,简单转译一篇短文,Empty Strings in Swift。 isEmpty属性 Swift中String是字符的结合,遵循Collection协议。因此会有isEmpty的属性,来判断字符串是否为空。 var isEmpty: Bool {get} Collection.swift的具体实现是: public var isEmpty: Bool { return startIndex == endIndex } "Hello".isEmpty // false "".isEmpty // true 不要使用count是否为0的方式来判断,这样会遍历整个字符串,性能差。 如何判断空白字符串 有时候的需求是判断字符串是否是空白字符串,因为设计字符编码的问题,通常不好实现。 " " // space "\t\r\

Swift 3到5.1新特性整理
Swift

Swift 3到5.1新特性整理

Hipo 2.0 重写从Swift 1的版本写到2的版本,后续Hipo功能稳定,更新慢了很多……,Swift本身却在长足的发展,5.0都已经发布了,本文对Swift 3.0 到Swift 5.1 的更新点做个总结。 为了方便阅读,准备从新到旧的总结。 下面所有的东西,都是来自hackingwithswift.com。 Swift 5.1 Swift 5.1的更新比较迟,单独成篇Swift 5.1的变化。 Swift 5.0 Swift 5.0 最重要的自然是ABI Stability, 对此可以看这篇 Swift ABI 稳定对我们到底意味着什么 。 当然还有其他的更新。 Result类型 SE-0235提议的实现。用来在复杂对象中的错误处理。 Result类型有两个带泛型的枚举成员success和failure,而且failure的泛型必须遵循Swift的Error类型。 常规的使用

【译】Swift Delegation
Swift

【译】Swift Delegation

Delegation委托是Apple iOS开发中很常见的一种模式,不过在之前开发Hipo中更多算是照猫画虎,这次来一篇Apple iBooks中《The Swift Programming Language ( Swift 4.2 beta)》中Protocol -- Delegation的译文。 委托(Delegation)是一种设计模式,能够让类或者结构体将自己一部分责任移交(或者称之为委托delegate)给另一个类型实例。该设计模式首先定义一个协议(protocol)描述被委托的责任,然后由受托者保证委托功能的实现。委托设计模式能够用来响应特定的动作或者从其他来源接受数据而不需要知道对方的类型。 下面例子为骰子积分榜类游戏定义了两个协议 protocol DiceGame { var dice: Dice { get } func play() } protocol DiceGameDelegate: AnyObject { func gameDidStart(_ game: DiceGame) func game(_ game: DiceGame, didStartNewTurnWithDiceRoll: Int) func

Swift macOS开发与Core Data,CloudKit开篇
Swift

Swift macOS开发与Core Data,CloudKit开篇

坚持总是最难的,立了很多flag,最终却仍是什么都没有做成。 喏,这不,又是一个flag。 喜欢将自己称之为创造者,也很庆幸能用自己的既能创造点东西出来,花花世界可爱的技术太多了,就连单单写个App就有着各种要花缭乱的法子,webview的,混合的,原生的……,谁不想用最小的力气写出最好的作品呢。 迷失了自己。 选一条hard way吧。 系列文章可能包含什么? Swift语言相关,工作中使用Typescript, React,RxJs,越来喜欢强类型语言,Swift作为一种现代的,安全的,强类型语言,值得再复习它的的语法。 可能会GitHub开源一个横跨,iOS,iPad,macOS 使用Core Data本地存储数据,CloudKit网络同步的TODO App。 可能会探索下RxSwift,工作中RxJs不要太爽。

Hipo

Swift 3 分词

发布Hipo Mac 版本后,花了一天时间升级Hipo iOS代码到Swift 3,然后准备为Hipo iOS 增加spotlight 搜索功能,因此就需要分词作为搜索的关键词。 下面是简单的实现方式,依赖CFStringTokenizer - Core Foundation | Apple Developer Documentation. extension String { func tokenize() -> [String] { let word = self let tokenize = CFStringTokenizerCreate(kCFAllocatorDefault, word as CFString!, CFRangeMake(0, word.characters.count), kCFStringTokenizerUnitWord, CFLocaleCopyCurrent()) CFStringTokenizerAdvanceToNextToken(tokenize) var range = CFStringTokenizerGetCurrentTokenRange(tokenize) var

Hipo

Hipo 2.0 Swift重写,限时免费!限时免费!限时免费!

2015年10月16日Hipo 2.0.0正式上线App Store,似乎倏忽间就将这大半年的躁郁一扫而光。上线全新版本,限时免费,限时免费,限时免费(已经结束限免)^_^ Hipo 1.X Hipo 1.X使用当时移动Js框架新秀ionic开发,虽说是phoneGap应用,但是做出来发现体验到也不差,使用Js开发移动应用,快速,成本低,门槛低,Hipo上线初就获得了App Store首页优秀App的推荐,这也直接决定了我走上了独立开发这条不归路-_-# 至今仍然喜欢AngularJs,ionic,仍然相信在App初期多数情况下使用Js开发是个很好的选择。 iOS原生开发学习 在变成果粉的同时,Apple推出了Swift语言,能够看得懂的语法,满足了我尝鲜的欲望,加之当时考虑实现Hipo数据云端保存,跨设备同步的功能,索性决定使用swift重写Hipo,于是: 看国内翻译的swift语法文档 继续看其他版本的swift语法资料 ……如此重复纠结…… 看完swift语法,发现对iOS开发还是一无所知,买了bitfountain出的iOS 8,swift视频教程,教程属于入门教程,然后用iPad看视频,电脑开着Xcode,