![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Swift
文章平均质量分 83
黄文臣
这个作者很懒,什么都没留下…
展开
-
Swift App状态恢复-State Restoration(一)
原创Blog,转载请注明出处 blog.csdn.net/hello_hwc前言: 对于一个app来说,没有办法保证每次都是用户正常关闭(双击home,然后关闭)。有可能是用户把app切换到后台,然后由于内存的原因,IOS系统选择关闭掉应用。这时候,就是状态恢复使用的场景。App应当做到的是,用户没有察觉到App在后台被IOS Kill掉了。本文主要讲诉如何用Storyboard进行状态恢复,下原创 2015-04-20 09:26:33 · 5307 阅读 · 5 评论 -
Swift 值类型,引用类型,深拷贝,浅拷贝,Copy,MutableCopy
原创Blog,转载请注明出处 http://blog.csdn.net/hello_hwc?viewmode=list 我的stackoverflow前言:Swift相对应Objective C来说,它不再需要绝大部分对象继承自NSObject,所以Swift的类型和Objective C的变量类型也不一致。Value Type/Reference Type什么是值类型,引用类型?二者最主要原创 2015-12-01 13:24:46 · 9938 阅读 · 3 评论 -
Objective C转Swift注意事项(一)合理使用结构体,枚举,extensions
前言14年Swift刚出的时候开始学习的Swift,后来由于项目需要,一直写App还是用的OC。最近打算把Swift重新捡起来,这个Objective C转Swfit系列就当成是我的复习笔记,顺便写成博客记录下来吧。这个系列不是讲解Swift基础,主要是讲解OC(以下OC均指的是Objective C)转过来的同学有些习惯要改变了,才能更好的使用Swift的很多优秀特性。枚举通常,你在Objecti原创 2016-07-10 11:21:56 · 4083 阅读 · 2 评论 -
Objective C转Swift注意事项(二)值类型和协议
来自Leo的原创博客,转载请著名出处我的StackOverflow我的Github https://github.com/LeoMobileDeveloper注意:本文的代码是用Swift 2.2写的。前言引自Apple Swift团队的一句话 At the heart of Swift’s design are two incredibly powerful ideas: protocol-原创 2016-07-26 18:01:58 · 1899 阅读 · 0 评论 -
Swift Playground精讲
Playground是啥? Playground是一个强大的工具。对于Swift初学者来说,它简单易用,可以实时预览代码效果,非常适合学习Swift这门语言。在日常开发中,playground可以进行快速的原型开发和试错。当然,playground支持markup标注,用来Swift相关的书籍也不错。基础讲解工欲善其事,必先利其器首先,我们先来熟悉下Playground的IDE,这是官方给出的原创 2017-01-01 16:49:16 · 16932 阅读 · 2 评论 -
详解Swift中的错误处理
前言任何代码都会发生错误,这些错误有些是可以补救的,有些则只能让程序崩溃。良好的错误处理能够让你的代码健壮性提高,提高程序的稳定性。本文的Swift版本:Swift 3Objective C返回nil如果出错了,就返回空是Objective C中的一种常见的处理方式。因为在Objective C中,向nil发送消息是安全的。比如:- (instancetype)init{ self = [原创 2017-03-19 16:49:05 · 10217 阅读 · 0 评论 -
Swift进阶之内存模型和方法调度
前言Apple今年推出了Swift3.0,较2.3来说,3.0是一次重大的升级。关于这次更新,在这里都可以找到,最主要的还是提高了Swift的性能,优化了Swift API的设计(命名)规范。前段时间对之前写的一个项目ImageMaskTransition做了简单迁移,先保证能在3.0下正常运行,只用了不到30分钟。总的来说,这次迁移还是非常轻松的。但是,有一点要注意:3.0的API设计规范较2.3原创 2016-11-13 16:08:01 · 9475 阅读 · 1 评论 -
优雅的开发Swift和Objective C混编的Framework
前言为什么要写这样一篇文章,因为昨天和一个朋友讨论到Swift和Objective C如何混合开发Framework,中途发现了很多有意思的坑。用Swift封住哪个OC的库是一件比较常见的事情,毕竟对于大多数公司来说,老的代码都是用OC写的,而且经过多次迭代,这些OC的代码已经被验证了是稳定的,用Swift重写代价太大。这就引入了一个需求:用Swift和OC来混编一个Framework。如果你之原创 2017-03-02 16:41:58 · 14241 阅读 · 18 评论 -
优雅的开发TableView
前言UITableView(UITableViewController)是iOS开发使用频率最高的一个组件。不管是使用UITableView还是还是UITableViewController,在开发的时候,我们都需要实现两个协议:UITableViewControllerDataSourceUITableViewControllerDelegate这两个协议的代码不是写在Controller里原创 2017-06-19 11:57:34 · 7147 阅读 · 8 评论 -
Moya的设计之道
前言 Moya是一个基于Alamofire开发的,轻量级的Swift网络层。Moya的可扩展性非常强,可以方便的RXSwift,PromiseKit和ObjectMapper结合。如果你的项目刚刚搭建,并且是纯Swift的,非常推荐以Moya为核心去搭建你的网络层。另外,如果你对Alamofire的源码感兴趣,推荐我之前的一篇博客:Alamofire的设计之道 Moya除了依赖Alamof原创 2017-08-11 13:44:52 · 8871 阅读 · 21 评论 -
Swift 代码调试-善用XCode工具(UI调试,五种断点,预览UIImage...)
原创Blog,转载请注明出处 http://blog.csdn.net/hello_hwc?viewmode=list 我的stackoverflow 工欲善其事,必先利其器,强烈建议新手同学好好研究下XCode这个工具。比如Build Settings,Build Info Rules,Build Parse, Edit Scheme…前言:这个Swift调试系列分为四篇图形化界面原创 2015-11-29 20:10:36 · 7665 阅读 · 1 评论 -
Swift iOS 9通讯录访问
原创Blog,转载请注明出处 http://blog.csdn.net/hello_hwc?viewmode=list 我的stackoverflow 前言:在iOS 9之前,一直使用AddressBook这个framework来访问用户通讯录。但是在iOS 9中,AddressBook被废弃了,转而使用Contacts Framework。文档Contacts Framework原创 2015-11-28 13:23:48 · 3589 阅读 · 0 评论 -
Swift线程安全详解-概念,三种锁,死锁,Atomic,synchronized
原创Blog,转载请注明出处 http://blog.csdn.net/hello_hwc?viewmode=list 我的stackoverflow 前言:最近app中的日历小概率的在currentCalendar这个方法崩溃,看了下call tree。研究了下,是线程安全问题。这里,就系统性的总结下线程安全这部分。之后的博客绝大部分源码会用Swift来写了。一些资料objc原创 2015-11-26 14:22:59 · 12905 阅读 · 0 评论 -
Swift 计算String占用的空间大小CGRect
使用这个函数 主要大小是和自体有关系的通常是固定宽度或者固定高度,来看另一个的大小固定宽度 var font = UIFont.systemFontOfSize(14); var attribute = NSMutableDictionary() attribute.setObject(font, forKey: NSFontAttributeName)var rect = yourS原创 2015-04-22 22:00:09 · 4292 阅读 · 0 评论 -
Swift调用Objective C的FrameWork
原创Blog,转载请注明出处 blog.csdn.net/hello_hwc前言: 最近在写博客的时候,Demo提供的都是OC的代码,对于Swift都有些生疏了,所以,最近可能会集中用Swift来提供Demo源码。很多Github的库经过很多年的发展,源码都是OC写的,,所以,用Swift调用OC的库就是开发中难免遇到的的一个问题,本文以AFNetworking为例,讲解如何跨语言调用。第一步创原创 2015-04-08 09:48:18 · 9633 阅读 · 0 评论 -
Swift惰性初始化(lazy)属性
原创Blog,转载请注明出处 blog.csdn.net/hello_hwc一 惰性初始化的定义在Objective C中,惰性初始化是这样写的@property (strong,nonatomic) CAShapeLayer * shapelayer;-(CAShapeLayer *)shapelayer{ if (!_shapelayer) { _shapelayer原创 2015-04-09 09:39:18 · 16717 阅读 · 0 评论 -
Swift网络开发-在DownloadTask完成前获取Resposne
原创Blog,转载请注明出处 blog.csdn.net/hello_hwc前言:这是今天在StackOverflow上给阿三回答的一个问题,在这里写成博客,方便遇到同样问题的人原理:用DataTask获取Response,并且将DataTask转变成DownloadTask - 对应代理函数didReceiveResponse在转变成downloadTask后,开始downloadTask-原创 2015-05-06 20:18:40 · 1980 阅读 · 0 评论 -
Swift-UnsafePointer, UnsafeMutablePointer,AutoreleasingUnsafeMutablePointer
原创Blog,转载请注明出处 blog.csdn.net/hello_hwc前言:写Swfit代码的时候经常会遇到各种各样的Pointer,有时候真的很混乱,这里整理一下。对应C语言的指针作为返回值,变量和函数参数 对于类 UnsafePointerUnsafePointer作为函数参数,可以接受如下类型nil 作为指向NULL的指针UnsafePointer, UnsafeMutab原创 2015-05-27 10:50:13 · 8556 阅读 · 0 评论 -
Swift 字符串替换/过滤/切割/拼接
原创blog,转载请注明出处 blog.csdn.net/hello_hwc之前写过一篇Swift String的基础,想了解的同学可以看下。 http://blog.csdn.net/hello_hwc/article/details/39853023替换把?替换为/var url = "http://blog.csdn.net/hello_hwc?viewmode=list"var filt原创 2015-05-22 15:17:27 · 13708 阅读 · 0 评论 -
Swift enumerate函数与??操作符
原创Blog,转载请注明出处 blog.csdn.net/hello_hwc前言:这篇文章的灵感来自于Stackoverflow的这个问题,这个问题我给出了我的答案,不过明显Accept的答案的解决方案要更好一点,所以这里把这个函数和操作符讲解一下。 本文的Swift语言版本,1.2先看看问题把这两个数组合成一个字典score = [1,2,3,4,5,6,7,8,9]dates =["7原创 2015-07-12 23:28:18 · 2824 阅读 · 0 评论 -
Swift 函数Count,Filter,Map,Reduce
原创Blog,转载请注明出处 blog.csdn.net/hello_hwc前言:和OC不同,Swift有很多全局的函数,这些全局函数对简化代码来说很有用,目前Swift出到了2.0,不过我这篇文章还是用Swift1.2写的示例代码。Count-统计数量文档func count<T : _CollectionType>(x: T) -> T.Index.DistanceDescription R原创 2015-07-13 22:09:15 · 3163 阅读 · 0 评论 -
Swift 2.0关键字guard
原创Blog,转载请注明出处 http://blog.csdn.net/hello_hwc?viewmode=list前言:当一项新的技术出来的时候,第一参考自然是文档。文档链接guard 语句 guard语句的作用是:当某些条件不满足的情况下,跳出作用域举个例子: 写个函数,保证输入小于10 在playground输入如下func testFunc(input:Int){ gu原创 2015-09-28 15:45:46 · 1991 阅读 · 0 评论 -
GCD精讲(Swift 3&4)
前言我们首先来看一张图:我觉得这张动图很好的诠释了《把一个线程用到死的》核心价值观。很多程序都有一个主线程。对于iOS/MacOS开发来说,这个线程就是UI线程,在这个线程上会做一些用户交互/渲染相关的事情。把过多的任务放在主线程,会导致主线程卡顿,进而用户看到的就是App响应慢,列表滚动的时候掉帧。把任务分散到多个线程执行有很多种技术,在iOS/MacOS App开发中,最简单直观的就是GCD(又原创 2017-01-09 21:37:50 · 12348 阅读 · 3 评论