- 博客(30)
- 问答 (1)
- 收藏
- 关注
原创 iOS-关于浏览、搜索等历史记录本地存储的思路
前言工具类VisitManager结构一、Node:二、 VisitManagerVisitManager数据操作流程一、插入数据二、 删除链表中的Node1、 删除链表中的NodeB2、 真正的删除内存中的NodeB三、校验与存储到磁盘思考过程一、 读取的时间复杂度二、 存储的最大长度三、超时的历史记录进行删除四、储存到磁盘demo前言在APP需求开发中,经常会有一些本地存储一些信息的功能,对于本地保存的浏览历史记录,大多需要根据几个维度进行约束:时间、数量、增删改查的时间复杂度、用户浏览顺序等例.
2022-04-18 07:00:00
801
原创 Json视图工具
简介描述BaseJsonViewController是一个用OC编写的提供了搜索、插入、编辑、查看路径、复制json/value等功能的Json可视化编辑工具。由于网络数据请求下来后,APP端对json原数据的展示并不明朗。 修改网络数据只能通过Charles等抓包工具实现,受到的限制太多,所以诞生了在APP端直接对json进行查看、修改的Json视图工具:BaseJsonViewCont...
2019-08-11 09:24:00
402
翻译 Swift 结构体 写时复制 - 学习Swift进阶
摘录来自: Chris Eidhof. “Swift 进阶”。 写时复制 (昂贵方式) 要实现写时复制,我们首先将 _data 标记为结构体的私有属性。我们不再直接变更 _data,而是通过一个计算属性 _dataForWriting 来访问它。这个计算属性总是会复制 _data 并将其返回:当我们调用 append 时,将会进行复制struct MyData { ...
2018-03-27 17:48:41
526
原创 Swift 结构体
对 Swift 学习 的一些总结 学习文献: Chris Eidhof. “Swift 进阶”类与结构体的主要不同点语义: 类:引用类型(引用语义),需要自己管理其引用计数、引用值得变化 结构体: 值类型(值语义),在设计结构体时,我们可以要求编译器保证不可变性。 内存管理方式: 类:类的实例只能通过引用来间接地访问。类能有很多个持有者。 ...
2018-03-27 17:47:31
944
原创 Alamofire 、ObjectMapper封装
可以在debug模式下,可以选择测试url demo点这里简介: 实现统一设置:超时时长、header、对code码的处理。。 统一对url进行了转码。(空格等特殊字符不崩溃) 使用简单,自动转化成为对象。(array,object,json) 对请求结果的清晰打印。(分为正确、错误,只有在debug模式会打印,可以在AlamafireMenager_Confi
2018-01-11 20:25:36
1419
原创 测试必备,自由切换账号、环境的组件(swift)
最好与AlamofierManager组合使用 请看demo前言 在开发中,经常要切换环境,来测试各个环境下的代码。 总是改baseURL,然后运行,那不爽爆?写swift的小伙伴都懂 写一个后门儿,只有在debug模式下才会显示出来,并且可以选择相应的url。 提供输入账号密码输入textField,点击登录自动切换账号。 使用PYSwi
2018-01-11 20:23:42
427
原创 swift用cocoaPods 打包静态库 (OC 与 Swift ,其实是一样的)
步骤、1. 创建文件夹,用于承载项目2. 打开终端,并且cd 到你的文件夹3. 终端执行语句创建项目: pod lib create 你的项目名 `等创建完成后,会自动打开项目。 在终端弹出 4.设置打开项目中的: .podspec文件# pod库名s.name = 'PYHandlerDate_Swfit' # pod版本s.version = '0.1.0'# pod概述
2017-12-18 11:06:17
2972
原创 抽屉效果的tableview功能组件:PYScalableTableView
抽屉效果的tableview功能组件:PYScalableTableView
2017-10-25 17:46:29
488
原创 OC_转场动画的工具类(无交互)
转场动画的学习 请看简书iOS CAAnimation之CATransition(自定义转场动画)一、思路 . a跳转b 1. a: a可以什么都不用做,直接present, 2. b: b要在init方法里面 写这两个方法, 这个方法保证fromView才不会被移除(及可以在modal后看到a控制器的view) self.modalPresentationSt
2017-09-18 19:11:50
458
原创 swift 初级语法
一、 变量初始化 普通变量 let a: NSInteger = 0// let / var 可变/不可变, a 名字,NSInteger 类型私有属性private var a: NSDate = NSDate() 在var或者let前面加private* 1. 字典 & 数组* //数组初始化(加泛型) var optionTitleStr : [Str
2017-09-18 19:11:11
451
原创 关于cocoapods的安装(重点在于坑)
安装cocoaPods1.Ruby镜像 输入以下命令查看当前的ruby源 gem sources -l如果输出的是 *** CURRENT SOURCES *** https://rubygems.org/那么需要更新一下ruby的源,过程如下 #(移除当前ruby的源)gem sources --remove https://rubygems.org/#(设置当前
2017-09-18 19:10:33
1750
原创 倒计时工具类:PYContDownManager
左边是输出台,右边是tableView,点击后modal了一个控制器,停止了计时器 一、主要功能 对于tableViewCell中,总会碰见有多个cell随机计时的问题,于是写了一个工具类。 里面封装了停止倒计时和开始倒计时。提供了倒计时的单位计时时间,以及距离当前时间还剩多长时间开始及时的变量,使用方便,异步线程计算。性能一般。二、头文件.h1. 创建方法 1.用着两个方法进
2017-09-18 19:09:17
429
原创 如果处理服务器与客户端时间不一致的问题
前一段时间做了一个倒计时的功能,要求每个tableViewcell里面都嵌入倒计时的功能。我也封装了一个工具类,详细请看这里 但是倒计时如果不是用服务器的现在时间进行剩余时间计算的话,就可能出现bug(比如一个商品,倒计时1小时停售,服务器已经过了这停售时间,从而停售了,但是客户端的时间比服务器时间向后调了1小时,那么客户端就会以为还没有停售) 这就要求要用客户端的时间求出服务器的时间
2017-09-18 19:08:30
10645
原创 iOS 扩展性极强的波浪效果工具类
前言: 工作中遇到冲浪需求,于是找了很多资料做参考,最后集成了一个工具类一、实现思路 用正弦函数,计算波浪上的点用UIBezierPath的moveToPoint和addLineToPoint连接成线, 用定时器DisplayLink作为动力源 停止波浪: 停止定时器并赋值为nil 开启波浪: 新建定时器,并setNeedsDisplay 二、详细代码 1. 创建
2017-09-18 19:07:58
606
原创 PYScrollToolBarView(解决了很多手势冲突)
OC: 工具类下载 pod ‘PYToolBarScrollView’ swift:工具下载 pod ‘PYToolBarScrollView_Swift’一、简介这个工具写了很久,一直不满意,换了n种方法,最后毛瑟顿开,用最平常的知识解决了问题。虽然很简单,但很巧妙。 适用结构: 1. 顶部有一个topView 2. 中间有个选
2017-09-18 19:07:29
469
原创 *NSString 内存存储解析
1 前言: 字符串是存在字符串常量池里面,然后要是有个指针想要指向一个字符串,先会到字符串常量区进行查找 1. 如果没有,就在字符串的常量区创建一个,把指针指向字符串常量区 2. 如果有,就直接把指针指向字符串的常量区。 所以,相同内容的字符串指针,其指向的内存地址都是一样的, 但是这个些字符串的指针变量的内存地址则可以是不同的。2 验证:1. 代码:@interface V
2017-09-18 19:06:52
523
原创 关于const 修饰的一些知识
1、前言 const 修饰的是后面的东西 const修饰的东西不可变 2、验证1. 代码static NSString *const a = @"a";//const 在“*” 与 “a” 之间static NSString const* b = @"a";//const 在“*” 与 “NSString”之间static const NSString *c = @"a";
2017-09-18 19:06:07
380
原创 swift GCD-定时器(DispatchSourceTimer)注册登陆组件封装
前言: 了解swift GCD 与OC GCD请看我的其他总结文章,这篇文章只是对swift GCD定时器的一个实例探讨,如果有什么不对,请各位指正。 swift CGD 地址 OC CGD 地址一、 swift DispatchSourceTimer 1. 创建方法 *timer要全局定义,局部定义初始化生命周期太短,不会执行回调//1. 指定线程 行的) /**创建
2017-09-18 19:05:25
1365
翻译 详解Objective-C的isa与meta-class
每个Objective-C对象都有一个隐藏的数据结构,这个数据结构是Objective-C对象的第一个成员变量,它就是isa指针。这个isa到底是什么呢?官方介绍是这样的:
2017-02-01 21:34:07
547
原创 iOS CALayer (图层的相关知识)
CALayer简介 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层
2017-02-01 21:32:26
230
原创 iOS RunLoop详解
>RunLoop是一个对象,这个对象在循环中用来处理程序运行过程中出现的各种事件(比如说触摸事件、UI刷新事件、定时器事件、Selector事件),从而保持程序的持续运行;而且在没有事件处理的时候,会进入睡眠模式,从而节省CPU资源,提高程序性能。
2017-02-01 21:29:22
440
翻译 CFRunLoopRef 的内部逻辑(向 ibireme学习)
本文纯属抄录 原文地址:(http://www.cocoachina.com/ios/20150601/11970.html) 感谢 ibireme整理这么完整的笔记据苹果在文档里的说明,RunLoop 内部的逻辑大致如下:/// 用DefaultMode启动void CFRunLoopRun(void) { CFRunLoopRunSpecific(CFRunLoopGetCurre
2017-02-01 21:28:34
1430
翻译 iOS CFRUnLoopRef 之CFRunLoopMode
1.简介: 每个CFRunLoopRef 包含若干个 Mode,每个 Mode 又包含若干个 Source/Timer/Observer。每次调用 RunLoop 的主函数时,只能指定其中一个 Mode,这个Mode被称作 CurrentMode。如果需要切换 Mode,只能退出 Loop,再重新指定一个 Mode 进入。这样做主要是为了分隔开不同组的 Source/Timer/Observer
2017-02-01 21:26:57
590
原创 iOS CAAnimation(动画)知识详解
关于代码 github源码:星星_新年快乐~ 引用了第三方label框架,制作了闪烁效果 (github源码请看这里) 主要技术: CAShapeLayer。 CAAnimationGroup。 CAKeyframeAnimation。 动画的基本总结github源码: 丛林,新年快乐~ 主要技术: CABasicAniamtio
2017-01-28 10:42:04
1025
原创 iOS UIGestureRecognizer (手势的基本知识介绍)
手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性。iOS 系统在 3.2 以后,他提供了一些常用的手势(UIGestureRecognizer 的子类),开发者可以直接使用他们进行手势操作。
2017-01-28 10:41:23
462
原创 iOS CAAnimation之CATransition(自定义转场动画)
一、 参考资料: 1.王巍 《博客》(非常详细,推荐阅读) https://onevcat.com/2013/10/vc-transition-in-ios7/ 2.xiao333ma 《博客》 http://blog.youkuaiyun.com/xiao333ma/article/details/49028241#t1二、protocol 1.@protocol UIViewCon
2017-01-28 10:40:00
398
原创 iOS —> UIScrollVeiw
一、UIScrollView简述:作用: UIScrollView可以让一个大小超出展示范围的UIView,通过手指的拖动,展示出这个UIView的其他部分,并且可以通过手势,对UIView进行缩放 读写属性CGFloat screenW = [UIScreen mainScreen].bounds.size.width; CGFloat screenH = [UIScreen main
2017-01-28 10:39:05
428
原创 iOS Quartz 2D绘图知识详解
* Quartz* 1. Mac OS X的Darwin核心之上的绘图层,有时候也认为是CoreGraphics。共有两种部分组成Quartz: 2. Quartz Compositor,合成视窗系统,管理和合成幕后视窗影像来建立Mac OS X使用者接口。 3. Quartz 2D,是iOS和Mac OS X环境下的二维绘图引擎。 涉及内容包括:基于路径的绘图,透明度绘图,遮盖,
2017-01-28 10:36:44
417
空空如也
swift 自定义转场动画dismiss时出现问题
2017-03-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人