自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 问答 (1)
  • 收藏
  • 关注

原创 iOS-关于浏览、搜索等历史记录本地存储的思路

前言工具类VisitManager结构一、Node:二、 VisitManagerVisitManager数据操作流程一、插入数据二、 删除链表中的Node1、 删除链表中的NodeB2、 真正的删除内存中的NodeB三、校验与存储到磁盘思考过程一、 读取的时间复杂度二、 存储的最大长度三、超时的历史记录进行删除四、储存到磁盘demo前言在APP需求开发中,经常会有一些本地存储一些信息的功能,对于本地保存的浏览历史记录,大多需要根据几个维度进行约束:时间、数量、增删改查的时间复杂度、用户浏览顺序等例.

2022-04-18 07:00:00 730

原创 Json视图工具

简介描述BaseJsonViewController是一个用OC编写的提供了搜索、插入、编辑、查看路径、复制json/value等功能的Json可视化编辑工具。由于网络数据请求下来后,APP端对json原数据的展示并不明朗。 修改网络数据只能通过Charles等抓包工具实现,受到的限制太多,所以诞生了在APP端直接对json进行查看、修改的Json视图工具:BaseJsonViewCont...

2019-08-11 09:24:00 352

翻译 Swift 结构体 写时复制 - 学习Swift进阶

摘录来自: Chris Eidhof. “Swift 进阶”。 写时复制 (昂贵方式) 要实现写时复制,我们首先将 _data 标记为结构体的私有属性。我们不再直接变更 _data,而是通过一个计算属性 _dataForWriting 来访问它。这个计算属性总是会复制 _data 并将其返回:当我们调用 append 时,将会进行复制struct MyData { ...

2018-03-27 17:48:41 479

原创 Swift 结构体

对 Swift 学习 的一些总结 学习文献: Chris Eidhof. “Swift 进阶”类与结构体的主要不同点语义: 类:引用类型(引用语义),需要自己管理其引用计数、引用值得变化 结构体: 值类型(值语义),在设计结构体时,我们可以要求编译器保证不可变性。 内存管理方式: 类:类的实例只能通过引用来间接地访问。类能有很多个持有者。 ...

2018-03-27 17:47:31 910

原创 Alamofire 、ObjectMapper封装

可以在debug模式下,可以选择测试url demo点这里简介: 实现统一设置:超时时长、header、对code码的处理。。 统一对url进行了转码。(空格等特殊字符不崩溃) 使用简单,自动转化成为对象。(array,object,json) 对请求结果的清晰打印。(分为正确、错误,只有在debug模式会打印,可以在AlamafireMenager_Confi

2018-01-11 20:25:36 1339

原创 测试必备,自由切换账号、环境的组件(swift)

最好与AlamofierManager组合使用 请看demo前言 在开发中,经常要切换环境,来测试各个环境下的代码。 总是改baseURL,然后运行,那不爽爆?写swift的小伙伴都懂 写一个后门儿,只有在debug模式下才会显示出来,并且可以选择相应的url。 提供输入账号密码输入textField,点击登录自动切换账号。 使用PYSwi

2018-01-11 20:23:42 404

原创 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 2932

原创 抽屉效果的tableview功能组件:PYScalableTableView

抽屉效果的tableview功能组件:PYScalableTableView

2017-10-25 17:46:29 454

原创 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 428

原创 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 429

原创 关于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 1726

原创 倒计时工具类:PYContDownManager

左边是输出台,右边是tableView,点击后modal了一个控制器,停止了计时器 一、主要功能 对于tableViewCell中,总会碰见有多个cell随机计时的问题,于是写了一个工具类。 里面封装了停止倒计时和开始倒计时。提供了倒计时的单位计时时间,以及距离当前时间还剩多长时间开始及时的变量,使用方便,异步线程计算。性能一般。二、头文件.h1. 创建方法 1.用着两个方法进

2017-09-18 19:09:17 402

原创 如果处理服务器与客户端时间不一致的问题

前一段时间做了一个倒计时的功能,要求每个tableViewcell里面都嵌入倒计时的功能。我也封装了一个工具类,详细请看这里 但是倒计时如果不是用服务器的现在时间进行剩余时间计算的话,就可能出现bug(比如一个商品,倒计时1小时停售,服务器已经过了这停售时间,从而停售了,但是客户端的时间比服务器时间向后调了1小时,那么客户端就会以为还没有停售) 这就要求要用客户端的时间求出服务器的时间

2017-09-18 19:08:30 10525

原创 iOS 扩展性极强的波浪效果工具类

前言: 工作中遇到冲浪需求,于是找了很多资料做参考,最后集成了一个工具类一、实现思路 用正弦函数,计算波浪上的点用UIBezierPath的moveToPoint和addLineToPoint连接成线, 用定时器DisplayLink作为动力源 停止波浪: 停止定时器并赋值为nil 开启波浪: 新建定时器,并setNeedsDisplay 二、详细代码 1. 创建

2017-09-18 19:07:58 582

原创 PYScrollToolBarView(解决了很多手势冲突)

OC: 工具类下载 pod ‘PYToolBarScrollView’ swift:工具下载 pod ‘PYToolBarScrollView_Swift’一、简介这个工具写了很久,一直不满意,换了n种方法,最后毛瑟顿开,用最平常的知识解决了问题。虽然很简单,但很巧妙。 适用结构: 1. 顶部有一个topView 2. 中间有个选

2017-09-18 19:07:29 446

原创 *NSString 内存存储解析

1 前言: 字符串是存在字符串常量池里面,然后要是有个指针想要指向一个字符串,先会到字符串常量区进行查找 1. 如果没有,就在字符串的常量区创建一个,把指针指向字符串常量区 2. 如果有,就直接把指针指向字符串的常量区。 所以,相同内容的字符串指针,其指向的内存地址都是一样的, 但是这个些字符串的指针变量的内存地址则可以是不同的。2 验证:1. 代码:@interface V

2017-09-18 19:06:52 508

原创 关于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 361

原创 swift GCD-定时器(DispatchSourceTimer)注册登陆组件封装

前言: 了解swift GCD 与OC GCD请看我的其他总结文章,这篇文章只是对swift GCD定时器的一个实例探讨,如果有什么不对,请各位指正。 swift CGD 地址 OC CGD 地址一、 swift DispatchSourceTimer 1. 创建方法 *timer要全局定义,局部定义初始化生命周期太短,不会执行回调//1. 指定线程 行的) /**创建

2017-09-18 19:05:25 1285

翻译 详解Objective-C的isa与meta-class

每个Objective-C对象都有一个隐藏的数据结构,这个数据结构是Objective-C对象的第一个成员变量,它就是isa指针。这个isa到底是什么呢?官方介绍是这样的:

2017-02-01 21:34:07 495

原创 iOS CALayer (图层的相关知识)

CALayer简介 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层

2017-02-01 21:32:26 221

原创 Quartz 2D 以及手势的综合 小demo

> 手势工具类和裁切View工具类以及动画的组合

2017-02-01 21:31:20 203

原创 iOS RunLoop详解

>RunLoop是一个对象,这个对象在循环中用来处理程序运行过程中出现的各种事件(比如说触摸事件、UI刷新事件、定时器事件、Selector事件),从而保持程序的持续运行;而且在没有事件处理的时候,会进入睡眠模式,从而节省CPU资源,提高程序性能。

2017-02-01 21:29:22 407

翻译 CFRunLoopRef 的内部逻辑(向 ibireme学习)

本文纯属抄录 原文地址:(http://www.cocoachina.com/ios/20150601/11970.html) 感谢 ibireme整理这么完整的笔记据苹果在文档里的说明,RunLoop 内部的逻辑大致如下:/// 用DefaultMode启动void CFRunLoopRun(void) { CFRunLoopRunSpecific(CFRunLoopGetCurre

2017-02-01 21:28:34 1387

翻译 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 556

原创 Quartz 2D 以及手势的综合 小demo

>Quartz 2D 以及手势的综合 小demo

2017-02-01 01:05:23 214

原创 iOS CAAnimation(动画)知识详解

关于代码 github源码:星星_新年快乐~ 引用了第三方label框架,制作了闪烁效果 (github源码请看这里) 主要技术: CAShapeLayer。 CAAnimationGroup。 CAKeyframeAnimation。 动画的基本总结github源码: 丛林,新年快乐~ 主要技术: CABasicAniamtio

2017-01-28 10:42:04 993

原创 iOS UIGestureRecognizer (手势的基本知识介绍)

手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性。iOS 系统在 3.2 以后,他提供了一些常用的手势(UIGestureRecognizer 的子类),开发者可以直接使用他们进行手势操作。

2017-01-28 10:41:23 423

原创 iOS CAAnimation之CATransition(自定义转场动画)

一、 参考资料: 1.王巍 《博客》(非常详细,推荐阅读) https://onevcat.com/2013/10/vc-transition-in-ios7/ 2.xiao333ma 《博客》 http://blog.csdn.net/xiao333ma/article/details/49028241#t1二、protocol 1.@protocol UIViewCon

2017-01-28 10:40:00 380

原创 iOS —> UIScrollVeiw

一、UIScrollView简述:作用: UIScrollView可以让一个大小超出展示范围的UIView,通过手指的拖动,展示出这个UIView的其他部分,并且可以通过手势,对UIView进行缩放 读写属性CGFloat screenW = [UIScreen mainScreen].bounds.size.width; CGFloat screenH = [UIScreen main

2017-01-28 10:39:05 411

原创 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 396

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除