![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Swift
文章平均质量分 60
Keep_Moving31038
这个作者很懒,什么都没留下…
展开
-
swift-可选类型Optional
Swift 引入的 Optional,很好的解决了 Objective-C 时代 “nil or not nil” 的问题,配合 Type-Safe 特性,帮我们减少了很多隐藏的问题。下面让我们通过源码来了解一下 Optional 具体的实现逻辑。初识 OptionalSwift 中的 Optional 想要表达的涵义更多是“有没有”,而非“空不空”,因此在 Swift 中,对 nil转载 2017-10-19 14:38:01 · 502 阅读 · 0 评论 -
Swift字符串常用操作总结
版本2:增加了Swift 2.0的语法,与Swift 1.2的语法相比,主要是:advance方法变成了advancedBy方法(但不是简单替换);没有了count方法,count(str)需要变成str.characters.count等。字符串的定义var str1="hello, mandarava." //字符串变量let str2="hello, mandarava." //字符串转载 2017-11-13 11:55:14 · 1372 阅读 · 0 评论 -
史上最全的iOS各种设备信息获取总结(iPhone8/iPhone X 已更新)
更新至iPhone 8、iPhone X为了统计用户信息、下发广告,服务器端往往需要手机用户设备及app的各种信息,下面讲述一下各种信息的获取方式:点击下载以上展示效果的GitHub源码一行代码就搞定的统一来! // 这个方法后面会列出来 NSString *deviceName = [self getDeviceName];转载 2017-11-03 11:31:59 · 2196 阅读 · 0 评论 -
ObjectMapper 简单使用
ObjectMapper是啥?ObjectMapper 是一个在 Swift 下数据转模型的非常好用,并且很 Swift 的一个框架。以前我们在写 OC 代码的时候用 MJExtension 转模型,到了 Swift 的时代赶紧将 ObjectMapper 使用起来吧。用CocoaPods集成首先当然要将这个库导入到自己项目里,在写 Swift 代码时,强力推荐用 CocoaPods 管理第转载 2017-11-17 10:56:27 · 1339 阅读 · 0 评论 -
UITableview布局 消除顶部空白contentInset
UITableview布局 消除顶部空白contentInset1. 现象在使用tableview的时候,你是否遇到下面的问题,如下图左边,将一个tableview加入到self.view中,设置其frame的y值为导航栏家状态栏高度64,self.view的背景色为红色,tableview的背景色为黄色,tableviewcell的背景色为绿色。运行的结果是:tablev转载 2017-10-26 17:23:43 · 723 阅读 · 0 评论 -
Swift: KVO 注意事项和属性观察器
前言谁能不爱 KVO 呢,一处修改,处处得知,多么优雅的模式啊!等等 Notification 模式也可以啊,咳咳,Notification 模式下还得发布一个通知。两者的优劣对比是一个很常见的笔试题,但我不觉得这样的题目是个好题目,大部分情况下两者能互换,但两者各有更适合的使用场景,这里暂不讨论了。关于 KVO 推荐这些文章,篇篇精华。老实说,有了这几篇文章后以目前我的水准写不出有价值的啥新转载 2017-11-09 14:43:11 · 383 阅读 · 0 评论 -
Swift3.0的闭包总结全
一、闭包的概念有oc基础的都知道,闭包其实是oc里面的block,语法格式不一样,但作用是一样的。主要是用于callBack(异步回调)或者两个类之间的通信。它的本质一个函数,一个可执行的代码块,只是这个函数是没有名字的,也就是匿名函数。你也可以把他看作如 int、float一样,是一种数据类型,一种可以作为参数传递的数据类型。二、基本语法1、闭包的声明//定义一个求和转载 2017-11-15 14:41:03 · 320 阅读 · 0 评论 -
WKWebView学习笔记
一、简介webView是我们日常开发中不可缺少的一个组件,通常我们都是使用UIWebView来实现的,不过大多数情况下,UIWebView的表现却不尽如人意(最直观的就是内存消耗严重,特别是有视频的时候,有木有!)iOS8之后苹果推荐使用WKWebView替代UIWebView,其主要的有点有:在性能、稳定性WKWebView更多的支持HTML5的特性WKWebView更快,占用内存可转载 2017-11-20 15:35:22 · 462 阅读 · 0 评论 -
swift3.0:sqlite3的使用
介绍一、sqlite是纯C语言中底层的数据库,在OC和Swift中都是经常使用的数据库,在开发中,可以使用代码创建数据库,可以使用图形化界面创建数据库。例如SQLiteManager、SQLiteStudio等 二、对常用的一些方法进行解释如下:OpaquePointer: *db,数据库句柄,跟文件句柄FIFL类似,这里是sqlite3指针;sqlite3_stmt转载 2017-11-15 18:28:31 · 341 阅读 · 0 评论 -
iOS五种本地缓存数据方式 96 GitHubPorter 2016.05.19 14:04 字数 3917 阅读 4579评论 1喜欢 8 前言 iOS本地缓存数据方式有五种: 1.直接写文件
iOS本地缓存数据方式有五种:1.直接写文件方式:可以存储的对象有NSString、NSArray、NSDictionary、NSData、NSNumber,数据全部存放在一个属性列表文件(*.plist文件)中。2.NSUserDefaults(偏好设置),用来存储应用设置信息,文件放在perference目录下。3.归档操作(NSkeyedArchiver),不同于前面两种,它可以转载 2017-11-16 15:43:22 · 361 阅读 · 0 评论 -
Json转模型1--SwiftyJson
JSON是移动端开发常用的应用层数据交换协议。最常见的场景便是,客户端向服务端发起网络请求,服务端返回JSON文本,然后客户端解析这个JSON文本,再把对应数据展现到页面上。但在编程的时候,处理JSON是一件麻烦事。在不引入任何轮子的情况下,我们通常需要先把JSON转为Dictionary,然后还要记住每个数据对应的Key,用这个Key在Dictionary中取出对应的Value来使用。这个过程转载 2017-11-16 16:28:08 · 1323 阅读 · 0 评论 -
Swift——convenience(便利构造函数)和类方法
[plain] view plain copy import UIKit extension UIButton{ //swit中类方法是以class开头的方法,类似于oc中+开头的方法 class func createButton(imageName:String,bgImageName:String)->UIButton{转载 2017-11-02 18:14:02 · 734 阅读 · 0 评论 -
iOS学习资源汇总 - 开源项目、第三方库、技术博客
前言Github众所周知,全球最大的同性社区交友网站,在这里你可以获取任何你想要的,只要你想,只要Ta有。从事开发几年在Github上Star了不少好的东西,当然学到了更多,在此深深的膜拜下那些开源的大神。切入正题,下面对自己使用过或者Star过的第三方框架整理下,便于日后查阅,也方便他人借鉴,如果大家有什么好的库推荐,欢迎在本文下方评论,本篇文章不定时更新...戳这里----->已上传转载 2017-10-25 11:42:38 · 489 阅读 · 0 评论 -
UI工具-阿里巴巴矢量图标库
各种UI图库:点击打开链接原创 2017-10-27 14:38:29 · 2244 阅读 · 0 评论 -
Swift3.0 popToViewController 的使用
1.这个有风险,如果push的固定,没有问题,如果多个地方push,[2]这个监测到的就有可能引起崩溃,推荐使用第二种//[2]代表你想pop的对象的层级,rootVC为0 let idVC = self.navigationController?.viewControllers[2] as! IdentityViewController _ = self.navigationContr转载 2017-11-08 09:43:41 · 1110 阅读 · 0 评论 -
swift之属性观察 (willSet和didSet)
属性观察器控制和响应属性的变化,当属性被设置的时候回调用属性观察器,主要有以下几个特点:属性改变之前触发willSet方法,属性改变之后触发didSet方法在给属性添加观察者之前必须要明确申明属性的类型,否则编译器会报错属性初始化时,willSet和didSet都不会调用,只有在设置属性值时才会调用当设置的值和原来的值一样时,willSet和didSet也会被调用willSet有一个转载 2017-10-31 09:51:37 · 454 阅读 · 0 评论 -
快速修改导航栏的返回图片
override func viewDidLoad() { super.viewDidLoad() self.title = "" let backButton = UIButton.init(frame: CGRect(x:0,y:0,width:20,height:15)) backButton.setImage(UIIm原创 2017-10-23 17:39:13 · 495 阅读 · 0 评论 -
优秀工程师-UITextField
lazy var inputUserText:UITextField={ let TextField = UITextField.init() TextField.placeholder = "请输入用户名" TextField.backgroundColor = UIColor.white TextFi原创 2017-10-23 17:41:24 · 216 阅读 · 0 评论 -
swift - enumerated()
Swift 标准库里最容易被滥用的就是 Sequence 的 enumerated() 函数。这个函数会返回一个新的序列,包含了初始序列里的所有元素,以及与元素相对应的编号。enumerated() 很容易被误解。因为它给每一个元素都提供了一个编号,对于很多问题来说这是一个很简便的方案。然而,这些问题大多数都可以被另一种方式更好的解决,让我们来看一下其中的一些例子吧,要注意理解它们有什么问题,转载 2017-10-24 10:17:22 · 6146 阅读 · 0 评论 -
Swift 3 中Private和Fileprivate的区别
当Swift首次引入访问级别时,对此进行了一些混淆和不解。虽然开发人员对于添加对Swift编程语言的访问控制感到兴奋,但是private关键字的行为与其他编程语言的行为不同。这在Swift 3中已经发生了改变,通过添加另一个关键字进行私有访问控制fileprivate。区别是微妙但容易理解。Swift 3 之前在引入Swift 3之前,private关键字将实体(类,结构,枚举,...)的使转载 2017-11-01 11:46:25 · 1123 阅读 · 0 评论 -
Swift3.0获取APP版本号,提示用户升级
获取当前版本号(版本号是字符串)Swift2.3:let currentVersion = NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"] as! StringSwift3.0:let currentVersion = Bundle.main.infoDictionary!["CFBundleSho转载 2017-10-25 09:38:53 · 423 阅读 · 0 评论 -
swift 获取app、ios 版本号及设备信息
func versionCheck(){ let infoDictionary = NSBundle.mainBundle().infoDictionary let appDisplayName:AnyObject? = infoDictionary["CFBundleDisplayName"] //程序名称 let majorVersion :AnyObject? = i转载 2017-10-25 09:43:30 · 488 阅读 · 0 评论 -
WKWebView内容自适应
问题:有的时候移动端在webview请求的时候,返回的内容呈现在页面很小,这是因为后台没有做手机端的屏幕适配,其实导致这样问题的根源是少了HTML5的meta标签。在后台不做调整的前提下,我们移动端可以做如下修改://webView内容大小自适应 let wkUScript = WKUserScript.init(source: "var meta = document.cr原创 2018-01-08 13:43:29 · 1253 阅读 · 0 评论