- 博客(38)
- 资源 (1)
- 问答 (3)
- 收藏
- 关注
原创 C - Socket编程
1、创建socket的方法// 创建套接字int socketID() { int socketID = socket(AF_INET, SOCK_STREAM,0); if (socketID != -1 ) { return socket id; } else { return 0; }}2、绑定端口的方法...
2019-05-07 11:17:47
230
原创 URL加载系统NSURLSession 之URLRequest的使用【四】
概观:URLRequest封装了加载请求的两个基本数据元素,一个是用于数据请求的地址URL,一个是用于请求过程中的配置信息,例如缓存策略,请求方式等等。URLRequest仅仅用于对请求的封装,您必须使用其他类例如URLSession将请求发送到服务器上。创建请求:1、类初始化方法: URLRequest(url: URL)2、实例初始化方法:init(url: URL, ca...
2018-09-14 14:21:22
1014
原创 URL加载系统NSURLSession 之URLCache和requestCachePolicy的使用【三】
背景:在iOS开发中,我们需要多次的和服务器进行数据交互,为了减少与服务器的交互次数,加快app的响应速度一般的会在iOS设备中去添加一个缓存机制,减少对同一个URL的多次请求以达到更快速度的对用户的响应提高程序的运行效率URLCache简介:URLcache是将URL请求映射到缓存的响应对象,它提供复合的内存与磁盘缓存并允许开发者去操作内存和磁盘部分的大小以及控制持久存储的路径一...
2018-09-14 13:07:59
952
原创 URL加载系统NSURLSession 之URLSessionConfiguration的使用【二】
简介:NSURLSession是IOS SDK提供的一组相对容易使用的网络API。它包括几个部分URLSessionConfiguration、URLSessionDelegate、URLSessionTask(组)、URLRequest、URLCache、URLSessionConfiguration指定NSURLSession的配置信息。这些配置信息决定了NSURLSession的种类...
2018-09-14 09:18:45
2251
原创 URL加载系统之基本机构【一】
URL加载系统的简介URL加载系统是一组类和协议的集合,它提供App去访问URL指定的内容的一系列协议和API。URL加载系统所支持的协议如下:【ftp://】、【http://】、【https://】、【file://】、【data://】。另外它还支持代理服务和网关处理。同时URL加载系统提供了一些辅助类用来对加载类进行辅助修改,可以分为以下五个类1、协议支持2、授权与认证...
2018-09-13 17:04:08
331
原创 Core Graphics 之 路径的填充规则与混合模式 (三)
前提:在CGContext的众多方法中有着特殊的两个绘制当前路径方法1、func drawPath(using: CGPathDrawingMode)2、func fillPath(using: CGPathFillRule)此方法中含有一个CGPathDrawingMode类型与CGPathFillRule类型,我们称之为绘制模型与填充规则绘制模型为一个枚举类型,其结构如下...
2018-09-12 13:43:40
1380
原创 Core Graphics 之 Paths(二)
Paths路径介绍:path定义了一个或者多个路径或者形状,是用来为Quartz 2D确定其绘制轨迹的对象。path路径可以是直线,点,曲线,或者组合。path路径具有打开路径和关闭路径之分,具体详情例子如下封闭路径和未封闭路径:封闭路径和未封闭路径的区别在于一条路径中首尾点是否进行连接。例子如下:/*未封闭路径*/override func draw(_ rect: CGRe...
2018-09-12 10:39:16
437
原创 Core Graphics的简介与概述(一)
简介:Core Graphics是Quartz 2D的一个高级绘图引擎,常用与iOS,tvOS,macOS的图形绘制应用开发。Core Graphics是对底层C语言的一个简单封装,其中提供大量的低层次,轻量级的2D渲染API。Core GraphicsAPI简单易于使用,并且提供了强大的功能访问,如透明层,基于路径的涂层绘制,屏幕外呈现,高级色彩管理,抗锯齿已经PDF文档的生成解析...
2018-09-06 14:28:15
7067
原创 Swift - 值类型与引用类型的初步探究
前言swift中的结构体和类在组成和功能上具有一定的相似性、两者都可以含有成员属性、成员方法用于数据存储和功能性模块封装。往往造成不知如何对二者进行区分和使用值类型概念和引用类型概念值类型的概念:值类型是指在系统进行标准的复制后,被复制的对象与复制出的对象之间完完全全的不存在任何关系,彼此之间具有绝对性的独立、此类型的数据被称为值类型(与OC中的深拷贝相同)引用类型的概念:引用类型...
2018-08-27 14:42:21
208
原创 swift-指针类型Memory Layout的简介与使用
前沿:swift语言在设计之初是与C语言的API进行了无缝的对接混用,但是在语法上具有很大的差异,swift在默认情况下是内存安全的,这也意味着我们在swift中是禁止使用内存操作的,但是swift并没有对内存的使用进行禁止,因此swift存在了一个特殊的数据类型unsafeMemory Layout类MemoryLayout是一个数据结构,用于保存类的内存配置,其组成如下str...
2018-08-27 11:11:58
2279
原创 swift - 百度云推送
前提准备:1、工程准备申请开发与生产环境下所对应的推送证书,推送证书的申请这里不再赘述 配置工程文件,在TARGETS下选择Capabilities,打开Background Models并选中最后一项,打开Push Notification选项生成后缀为entitlements的相关文件 在工程配置文件plist文件中去设置我们用于推送环境下所有的Bundle Identifier...
2018-08-09 14:40:30
502
原创 Python 字典
字典是一种定位查找速度更加迅速高效的序列,它在查找性能上要大于列表喝元组!字典的定义方式使用成对的序列进行初始化字典 使用关键字实际参数创建字典 使用formKeys创建指定key值,value值为none的字典例子# 字典的初始化, 可以使用成对的序列进行创建初始化items = [['name', 'Gumby'], ['age', 42]]dic = dict(ite...
2018-07-31 15:10:03
251
原创 Python 列表与元祖
序列概念介绍:序列时python中最基础的数据结构,在序列中每个元素都有自己的编号,第一个元素的编号索引为0,第二个为1,以此类推,python中的元祖和列表就是序列,其中的字符串也是序列中的一种二者的定义区别:列表的定义如下:list = [], list = [1,2,3,4]元祖的定义如下:tup = (), tup = (1,2,3,4)二者之间类似,列表使用[]进行定...
2018-07-31 10:35:19
1094
原创 Python 字符串操作
python中,字符串是值类型,也是一种不可改变的标准序列,具有索引,切片,乘法,成员检查,长度,最大最小值的序列通用方法。在python中对字符串进行改变的一系列操作都是非法的格式化字符串的格式包含三部分组成字段名:字段名一般由索引值和标识符表示,用于指出所设置的替换字段位置 转换标志:跟在感叹号后面的单个字符,当前使用的有r(repr),s(str),a(ascii) 格式说明...
2018-07-30 13:36:48
227
原创 python变量之数字类型Numbers
python中的number用于存储数值,数据类型是不允许进行改变的,如果进行改变也就是意味着要重新分配内存空间例如:对两个变量的初始化和赋值操作以及删除对象的引用# 定义两个整型变量var1 = 1var2 = 10print(var1, var2)# var2进行重新赋值,表示对var2重新进行内存分配var2 = 2print(var2)# 删除对象引用操作de...
2018-07-30 11:03:58
2103
原创 python之基础变量一
python中的变量在python中,变量是存储在内存中的值,也就意味着python中的变量会开辟内存空间,python解释器回根据变量类型去开辟不同的内存空间进行变量值的存储变量的赋值python中使用等号尽心变量赋值,解释器会根据变量的赋值类型自动判断是什么类型的数据# 变量的赋值name = "ksiliy"age = 25sex = "man"print(age,...
2018-07-30 10:06:43
629
原创 python 入门知识与基础算法
python 基础知识1.1 python表标示符1、在python里面,标识符只能以数字,字母,下滑线进行组成 2、python中不能以数字进行开头,可以使用字母和下划线开头 3、python中的标识符是区分大小写的 4、以下划线开头的标识符具有特殊意义,其表示为不可直接进行访问的属性。例如 _name代表不能直接进行访问的类属性,以双下划线开头的标识符表示一个类的私有属性 ...
2018-07-30 08:53:11
459
原创 IOS - 常用代码块收集
收集常用的代码块是加快开发的有效途径,收集的操作步骤这里不在赘述,仅仅贡献上一些常用的功能性代码1、与高度和宽度有关的 /*获取导航栏高度*/ public func getNavigationBarHeight() -> CGFloat { let navRect:CGRect! = self.navigationController?.naviga...
2018-07-26 13:25:16
314
原创 iOS机器学习之-CoreML框架简介
CoreML框架是机器学习的核心框架,也是人工智能的核心内容之一。ML是machine learning(机器学习)的缩写!在苹果的开发着网站上有如下图示,其清晰的表示了机器学习模型使用到app中的过程我们通过对机器学习的算法模型的数据转化,转化成我们app中可以进行使用的数据模型去显示通过算法分析得到的预算结果,例如一个在受过地区历史和房价上受过学习的模型,我们给定其卧室、浴室、地理位置...
2018-07-24 17:58:18
2116
1
原创 iOS应用的生命周期详解
iOS系统资源是有限的,合理的去配置应用程序的运行状态以及了解app的生命周期对于大多数开发者来说是很重要的一件事情!在后台进行运行时app会受到系统的很多限制,但是也可以提高电池的使用和用户的体验应用程序的活动状态应用程序的活动状态一次如下1、not running 未运行状态,程序并没有进行启动时的状态2、inactive 未激活状态,表示程序在前台进行运行,但是没有接受到任何...
2018-07-24 10:04:03
3050
原创 Swift4.1新特性1之泛型加强
随着Xcode 9.4.1的跟新,Swift 4.1版本以及iOS 11.4也随之进行跟新和扩展。跟新的内容主要是围绕着泛型加强进行完善和扩展swift中的array是一个泛型的结构体类型,它有一个为element的类型参数。如果我们对array实现Equatable 协议,那么前提条件是其元素element也要支持内容与地址比较。这样我们才能为array创建判断元素是否相等的扩张方法e...
2018-07-23 09:05:00
509
原创 多分组多列的不规则布局实现原理(复杂首页布局)
在常见的UI布局中,往往会含有广告栏banner,按钮,商品信息展示等等元素。例如如下的布局格式其解决方式优先想到的是采用瀑布流自定义布局去实现类似的布局格式自定义CollectionViewLayout自定义CollectionViewLayout需要去实现如下的基础方法1、prepareLayout预先布局方法2、collectionViewContentSize 返回...
2018-07-18 10:51:28
1175
原创 swift - iOS10后的自定义导航条按钮的偏移距离问题
导航控制器是我们常用的控制器,在iOS10之前我们自定义的导航按钮在添加时会有为20个像素的间隙问题,通常的解决方式是创建一个类型为fixed..Space的item加入导航按钮组去解决间隙过大问题,但是但是在iOS10之后此方法就不在实用了!如图:之前的解决方式如下lazy var leftButton:UIButton = { let button:UIBut...
2018-07-17 18:06:59
1794
1
原创 swift - YYCache 之 YYDiskCache
YYDiskCache缓存是通过file文件,splits进行数据存储与读取操作,直接放代码初始化方法:- (nullable instancetype)initWithPath:(NSString *)path;- (nullable instancetype)initWithPath:(NSString *)path inlineThreshold:(...
2018-06-29 14:01:14
1662
原创 YYKIT系列之 —— YYCache
YYCache是一个优秀的缓存框架,其文件结构如下:YYCache的文件结构分为四个,YYCAche、YYDiskCache、YYKVStorage、YYMemoryCacheYYCAche使用以及介绍:初始化方法:- (nullable instancetype)initWithName:(NSString *)name;- (nullable instancetype)initWithPath...
2018-06-29 10:41:30
291
原创 swift - 数据缓存一使用UserDefaults与plist表格进行数据存储
UserDefaults是iOS中提供的一套最为基础的持久化方式,一般用于存储用户的基本信息直接上代码:// 最简单的使用于存取 func userDefaultsSave() -> Void { let user:UserDefaults = UserDefaults.standard /*基础的可存储的类型*/ user.set(URL(s...
2018-06-28 18:10:39
1470
原创 swift 开发中遇见的NSURLErrorDomain的-1005错误总结
HTTP的长链接于端链接:在HTTP1.0中,默认的连接都是短链接,当发生一个http请求时会产生一个tcp连接,请求结束时会关闭tcp连接在HTTP1.1开始,所有的默认连接就是进行的长链接,即在一次连接后,服务器于客户端之间建立的TCP连接并不是立即断开的。而是按照约定的Keep-Alive时长维持一定时间的连接状态。iOS中的1005错误问题:我在使用Alamfire框架时出现了1005网络...
2018-06-28 10:36:25
3033
1
原创 swift - UIGestureRecognizer 于几种常用手势
手势基础类:UIGestureRecognizer(手势识别器)手势识别对象常常用于触摸序列或者其他输入的逻辑判断,并对该识别进行操作。其具体的子类有以下七种1、UITapGestureRecognizer 轻点手势识别2、UIPinchGestureRecognizer 捏合手势识别对象3、UIRotationGestureRecognizer 旋转手势识别 4、UISwipeGestureRe...
2018-06-26 15:53:10
6673
原创 swift - TableView的使用以及圆角分组表格实现的思路
TableView的使用:与oc语言中的tableview基本类似,swift中的表格依然是如下的实现步骤1、创建表格2、设置代理,并注册单元格3、遵循协议4、实现代理方法swift创建表格:lazy var tableView:UITableView = { let table:UITableView = UITableView.init(frame: .zero, style: ...
2018-06-26 09:26:26
2363
原创 Swift - 使用DispatchGroup处理多线程并发操作与简化代码
使用场景1、简化代码易读性,似的获取数据与界面刷新分离2、处理多线程并发执行,处理多任务请求结束后的UI刷新问题3、与网络请求第三方的混合使用一、创建DispatchGroup与简单实用创建队列组lazy var gropQueue:DispatchGroup = { let grop:DispatchGroup = DispatchGroup.init...
2018-06-25 16:59:06
7034
原创 swift - Dispatch之系统队列的使用1
Dispatch是系统提供的一套用于进行多核多线程编程的API,dispatch会根据CPU的使用情况自动的去创建任务,并把任务提交到队列中进行执行,提高了程序的运行效率小知识点:Dispatch在GCD层面是没有线程的概念的,其结构是一个先进先出的队列结构。通过block块的方式去提交任务然后会自动的去创建线程并且交给CPU进行执行两种方法创建一个简单的队列1、/*简单的方法去创建线程*/ ...
2018-06-25 09:22:16
3768
原创 swift - Alamofire 网络请求
Alamofire是一个swift语言的网络开源库,主要用于网络请求,响应操作,响应校验,响应缓存其基本用法如下:进行网络请求、响应操作、响应校验、响应缓存http方式、parameter编码、http headers 、验证数据的上传与下载工具类有CURL command outPut、statical metrics高级用法url 绘话管理、绘话代理、绘话请求routing请求操作model ...
2018-06-20 15:23:28
1523
原创 swift - MJExtension 使用
MJExtension 简介:(建议使用object-c语言的model,swift的原因之后进行解释)MJExtension是一套字典与模型直接进行相互转化的超轻量级框架,可以使用MJExtension处理以下的模型字典转换1、json -> model 、 core data model2、jsonString -> model、core data model3、model、 co...
2018-06-20 15:22:43
2967
原创 高德地图的一些使用分享
近期、根据公司的业务需求、需要对获取的地理位置信息进行标注以及简单的线路规划!在此分享一下这几天的心得与体会1、关于高德地图添加标注点的问题地图标注点是地图上的一种遮盖层,我们可以通过高德地图提供的借口添加一个标注点和多个标注点、添加一个标注点首先我们通过获取到的经纬度坐标信息去创建遮盖层MAPointAnnotation的实例,之后通过地图类添加到地图上如下:let pointAnnotatio...
2018-05-10 11:15:15
1132
转载 iOS 中的常用设计模式总结
一 iOS中都有什么设计模式?1.代理模式2.观察者模式3.MVC模式4.单例模式5.策略模式6.工厂模式 二 各个设计模式的作用?(一)代理模式在观察者模式中,一个对象任何状态的变更都会通知另外的对改变感兴趣的对象。这些对象之间不需要知道彼此的存在,这其实是一种松耦合的设计。当某个属性变化的时候,我们通常
2016-07-18 09:51:11
500
原创 常用的性能优化手段(内存优化方法)
常用的性能优化手段1.使用 ARC 进行内存管理,ARC 是 iOS 提供的采用自动引用计数方式进行管理内存的一种手法,它避免了最常见的忘记释放对象内存而引起的内存泄漏问题。它的工作原理是编译器会自动的为你管理 retain 和 release 过程。2.表格复用:reuseIdentifier,在使用单元格时应采用懒加载的模式去创建表格的单元格,首相应当在缓存中去寻找单元格是否创建,找到
2016-07-17 15:28:57
1153
原创 XMPP 协议的原理和介绍
XMPP 协议是什么:XMPP 是用于即时通讯的扩展标记语言(XML)协议,它用于即时消息和在线现场的探测,它基于服务器--客户端的架构XMPP 的优点:1、XMPP 协议是公开的,并不属于某个机构或者个人2、XMPP 协议具有良好的扩展性,XMPP 充分的发挥了 XML 结构化数据的通用传输层的作用,它将出席和上下文敏感信息嵌入到 XML 结构化数据中,从而使得数据以高效率传送。
2016-07-17 11:17:13
526
TA创建的收藏夹 TA关注的收藏夹
TA关注的人