Swift 中 String 取下标及性能问题 取下标 String String 用 String.Index 取下标(subscript)得到 Character,String.Index 要从 String 中获取 let greeting = "Guten Tag!" greeting[gr
不知道大家有没有发现,在一个 Objective-C 和 Swift 混编的 App 中,当把一个 OC 中的参数转到 Swift 时,Swift 会自动把这个变量进行强制解包。举个例子,我在 OC 中定义这样一个变量:  1 @property (nonatomic, copy) NSString
  在使用Alamofire进行网络请求的时候,相信大部分的同学都会封装一个抽象的NetworkLayer,如"APIManager" 或者 "NetworkModel"等等。但是位置业务功能增加,会渐渐混合各种请求,不够清晰,而Moya能很好地解决这类问题。Moya在Alamofire基础上进行封
循环(Loops) 1. For条件递增语句   1 for ( var counter = 0; counter < 8; counter++ ) 2 { 3 liftWeights( ) 4 }       语法是这样的:用for作为循环的开始,告诉Xco
简介: Core Text主要用来对文本进行排版布局和字体处理,与其他UI组件相比,由于它直接与Quartz交互,因此排版效率高,渲染速度快。 下图是Core Text的架构图: 富文本实现:(GitHub传送门) 接下来我们通过一个例子来看看如何实现富文本展示。我们按职责将功能拆分成几个类来完成
在开始之前呢,先了解一下UIView和CALayer大体的区别(重点列举了以下四点): UIView继承自 UIResponder,因此UIView 可以处理响应事件,而CALayer继承自NSObject,所以它只是负责内容的创建,绘制。 UIView负责对内容的管理,而CALayer则是对内容的
简介 特点 (1)优于OC,快速,安全 (2)取消了预编译指令包括宏定义(OC用的太多了) (3)取消了OC指针和不安全访问的使用(看不到星星了) (4)舍弃 Objective-C 早期应用 Smalltalk 的语法,全面改为点语法 (5)3.0中对Foundation框架做了很多改变,去除了N
>获取当前时间: t := time.Now()   >获取当天开始、结束时间: tm1 := time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location()) tm2 := time.Date(t.Year(),
前言 本文主要是笔者小结 WWDC2017 中 《What's New in Swift》的 Session ,其中也掺杂了些《What’s New in Foundation》,仅作记录。 下面步入主题。 私有访问控制("Private" Access Control) SE-0169 在 S
为什么使用RxSwift? 我们编写的代码绝大多数都涉及对外部事件的响应。当用户点击操作时,我们需要编写一个@IBAction事件来响应。我们需要观察通知,以检测键盘何时改变位置。当网络请求响应数据时,我们必须提供闭包来执行。我们使用KVO来检测变量的变化。所有这些不同的系统使我们的代码增加了不必要
      拆包和解包的原因:   其实所谓的 nil 就是 Optional.None, 非 nil 就是Optional.Some, 然后会通过Some(T)包装(wrap)原始值,这也是为什么在使用 Optional 的时候要拆包(从 enum 里取出来原始值)的原因, 也是 PlayGro
苹果提供 Ubuntu上构建Swift 的教程,通过这个教程我尝试使用CentOS7.2上玩儿一把。目前已经成功在CentOS7.2上班成功安装 swift 4.0 https://github.com/jaywcjlove/handbook/ swift --version Swift versi
聊天界面封装,快速开发。(高度自定义) https://github.com/February12/YLBaseChat  
1,as使用场合(1)从派生类转换为基类,向上转型(upcasts) 1 class Animal {} 2 class Cat: Animal {} 3 let cat = Cat() 4 let animal = cat as Animal   (2)消除二义性,数值类型转换 1 let
TensorFlow并行,模型并行,数据并行。模型并行根据不同模型设计不同并行方式,模型不同计算节点放在不同硬伯上资源运算。数据并行,比较通用简便实现大规模并行方式,同时使用多个硬件资源计算不同batch数据梯度,汇总梯度全局参数更新。 数据并行,多块GPU同时训练多个batch数据,运行在每块GP
    类 类的转化 // 用泛型替代父类: func valueIsOk<T: JSONModel>(anyClass: T) { } // JSONCart 是 JSONModel的子类,传入JSONCart self.valueIsOk(anyClass: ite
不会造成循环引用的block 大部分GCD方法 1 dispatch_async(dispatch_get_main_queue(), ^{ 2 [self doSomething]; 3 }); 因为self并没有对GCD的block进行持有,没有形成循环引用。目前我还没碰到使用GCD
好像是macOS10.10之后,以及iOS8之后,新出现的WKWebview组件就迅速的替代了Webview及UIWebView。后者的确存在一些无法解决的bug,诸如架构导致的速度缓慢和内存泄漏。 但无法避免的问题总是有的,比如有些客户端软件,仍然要求兼容老版本的系统,这时候,很不想使用,但也不得
枚举 苹果官方文档 枚举 苹果官方文档中文翻译 枚举 枚举语法 enum SomeEnumeration { // enumeration definition goes here } enum CompassPoint { case north case south
类和结构体 苹果官方文档 Classes and Structures 苹果官方文档翻译 类和结构体 类与结构体的对比 定义语法 class SomeClass { // class definition goes here } struct SomeStruct