张科的技术博客

折腾是一种态度

嗨,我是张科(@GarfieldLover),搜狐视频iOS开发者。


这是我用来记录实践和填坑经验心得的地方,欢迎您的访问。

标签: Swift


audioUnit

基本认识在AudioUnitHostingFundamentals这个官方文档里有几个不错的图:audioUnitScopes_2x.png对于通用的audioUnit,可以有1-2条输入输出流,输入和输出不一定相等,比如mixer,可以两个音频输入,混音合成一个音频流输出。每个element表示一个音频处理上下文(context), 也称为bus。每个element有输出和输出部分,称为scope,分别是input scope和Output scope。Global scope确定只有一...…

Swift

RunLoop

加载方式imageWithContentsOfFile:+图片路径([[NSBundle mainBundle] pathForResource:@”icon” ofType:@”png”]),不会缓存到内存,适合用于加载较大的不常用的图片降低内存消耗。imageNamed:+图片名,会缓存到内存且无法释放。imageWithData:+二进制data,不缓存,适合网络下载图像生成UIImage。然后将生成的UIImage赋值给UIImageView,CA捕捉到图层树的变化在下一个run ...…

Swift

RunLoop

日常的开发工作中,我们几乎很少注意RunLoop,因为我们基本上“用不到”RunLoop。包括我在内应该有很多人都不了解这个东西,只是听说过。最近有空查了不少资料终于把RunLoop运行原理搞清楚了。本文会对RunLoop的原理进行深入探讨,但是不涉及底层的实现。我们平时开发中的很多东西都和RunLoop相关,比如:AutoreleasePoolNSTimer消息通知perform函数网络请求dispatch调用block回调KVO触摸事件以及各种硬件传感器RunLoop机制贯穿整个App...…

Swift

tableview高度计算

UITableViewDynamicLayoutCacheHeight 是一个便捷的,高性能的自动计算使用 Autolayout 布局【Xib、StoryBoard、Masonry 、SnapKit、SDAutoLayout …】的 UITableViewCell 和 UITableViewHeaderFooterView 的高度,支持横竖屏,内部自动管理高度缓存,已兼容 Swift 。在 UITableView 获取高度的代理方法里实现如下代码,Block 中的代码和 - (UITabl...…

Swift

RxSwift

1.函数式编程是种编程范式,他是通过构建函数操作序列,然后对这些序列做出响应的编程方式,它结合了函数式编程以及响应式编程2.函数式编程的优点灵活高复用简洁易维护适应各种需求变化3.我们通过不同的构建函数,来创建所需要的数据序列。最后通过适当的方式来响应这个序列。这就是函数响应式编程。4.Observable是可监听序列,Observe是观察者,数据绑定(订阅,就是将可监听序列绑定到观察者上。5.RxSwift核心内容Observable - 产生事件Observer - 响应事件Opera...…

Swift

Swift - 区间运算符(... 和 ..<)

区间运算符可以用来表示两个操作数之间的范围集合。1,闭区间运算符:a…bfor iCount in 512...1024{//从512遍历到1024(包括1024)}2,半闭区间运算符:a..<bvar fruts = ["apple","orange","banana"]let iCount = fruts.countfor i in 0..<iCount{print("第\(i+1)个水果是\(fruts[i])")}3,倒序循环通过 reversed() 方法,我们可以将...…

Swift

使用arc4random()、arc4random_uniform()取得随机数

arc4random() 这个全局函数会生成10位数的随机整数(UInt32)。其生成的最大值是4294967295(2^32 - 1),最小值为0。1,下面是使用 arc4random 函数求一个 1~100 的随机数(包括1和100)1 | let temp = Int(arc4random()%100)+12,下面是使用 arc4random_uniform 函数求一个 1~100 的随机数(包括1和100) 1 let temp = Int(arc4...…

Swift

Swift - 基本数据类型,及常/变量声明

下面是 Swift 中基本的数据类型介绍说明:1,变量:使用var声明1 var str:String = “hangge.com”2,常量:使用let声明1 let count:Int = 323,整形:有符号整形:Int,Int8,Int16,Int32,Int64无符号整形:UInt,UInt8,UInt16,UInt32,UInt644,浮点型:Double:64位浮点数类型5,布尔型:Bool6,字符串:String(1)判断是否为空:isEmpty1 var str:Strin...…

Swift

Swift 取代 Objective-C?

关于这种编程语言,你必须了解哪些信息?使用 Swift 会有哪些风险?为了开始讨论 Swift 语言的优缺点,我们先回顾一下 Swift 的发展历史。Swift - 它的历史和背景故事Apple 于 2014 年的 WWDC(Worldwide Developers Conference 全球开发者大会)上首次推出了 Swift 这种编程语言,它是可用于 iOS、macOS、tvOS 以及 watchOS 平台开发的第二种官方编程语言。就在去年 9月份,Swift 已经更新到 3.0 版本...…

Swift