- 博客(59)
- 资源 (1)
- 收藏
- 关注
转载 【转】iOS 保持界面流畅的技巧
【转】iOS 保持界面流畅的技巧 特别申明:本文是YYKit作者博客空间复制而来,为了方便集合阅读学习。如有侵权请联系我删除。原文地址:https://blog.ibireme.com/2015/11/12/smooth_user_interfaces_for_ios/YYKit地址:https://github.com/ibireme/YYKit界面优化相关文章:iO...
2018-09-12 10:40:21 371
转载 【转】iOS 视图,动画渲染机制探究
【转】本文发布于微信公众号 - QQ音乐技术团队 - 腾讯Bugly(http://bugly.qq.comiOS 视图,动画渲染机制探究终端的开发,首当其冲的就是视图、动画的渲染,切换等等。用户使用 App 时最直接的体验就是这个界面好不好看,动画炫不炫,滑动流不流畅。UI就是 App 的门面,它的体验伴随着用户使用 App 的整个过程。如果UI失败,用户是不会有打开第二次的欲望的。...
2018-09-11 14:34:33 307
原创 GCD全解-11-GCD死锁
dispatch_sync将block转换后检查队列宽度为1,调用dispatch_barrier_sync_fvoid dispatch_sync(dispatch_queue_t dq, void (^work)(void)){ struct Block_basic *bb = (void *)work; dispatch_sync_f(dq, work, (dispatc...
2018-09-08 08:56:24 842
原创 GCD全解-10-dispatch_source-调度资源
现代系统通常提供异步接口,允许应用向系统提交请求,然后在系统处理请求时应用可以继续处理自己的事情。Grand Central Dispatch正是基于这个基本行为而设计,允许你提交请求,并通过block和dispatch queue报告结果。dispatch source是基础数据类型,协调特定底层系统事件的处理 Dispatch source替代了异步回调函数,来处理系统相关的事件。...
2018-09-08 08:55:28 2110
原创 GCD全解-09-dispatch_block-GCD取消操作
为什么要学dispatch_block?dispatch_block_create创建demo监听 block 执行结束dispatch_block_notifyGCD的取消:dispatch_block_cancel为什么要学dispatch_block?在向队列中添加任务时,可以直接在对应的函数中添加 block。但是如果想对任务进行操作,比如监听任务、取消任务,就...
2018-09-08 08:51:48 2412
原创 从git log 点线图(graph)看merge和rebase操作
why?本地操作记录创建Git和master并且初次提交(master-first-commit)创建br1和br2, 并且br1初次提交(br1-first-commit)master前进,第2次提交(master-second-commit)br2初次提交(br2-first-commit)br1 merge masterbr2 rebase mastergit 开发简...
2018-09-07 16:02:08 38751
原创 GCD全解-08-dispatch_group-调度组/多异步操作控制
dispatch_group是干什么的?在处理并发操作的时候,如果是几个block同时并发,我们无法知道最后执行完毕的时候是在哪一个Block中,那么就无法知道在哪一个位置写上结束时的代码? dispatch_group_async 和 dispatch_group_notify可以实现这个功能。dispatch_groupdispatch_group将提交到这个group的bl...
2018-09-06 17:28:21 485
原创 GCD全解-07-dispatch_semaphore-信号量/数据同步
主要API列表 dispatch_semaphore_create 创建一个semaphore dispatch_semaphore_signal 发送一个信号 dispatch_semaphore_wait 等待信号如何在GCD中快速的控制并发呢? 信号量是一个整形值并且具有一个初始计数值,并且支持两个操作:信号通知和等待。 当一个信号量被信号通知,其计数会被增加。...
2018-09-06 17:24:12 583
原创 GCD全解-06-dispatch_once-单次执行
单次执行一个任务,此方法中的任务只会执行一次,重复调用也没办法重复执行(单例模式中常用此方法)static AutoPayManager *manager;@implementation AutoPayManager+ (instancetype)defaultPayManager { static dispatch_once_t onceToken; dispatch_o...
2018-09-06 17:22:00 317
原创 GCD全解-05-dispatch_apply-重复提交操作
重复执行某个任务,但是注意这个方法没有办法异步执行 (为了不阻塞线程可以使用dispatch_async()包装一下再执行* @abstract * Submits a block to a dispatch queue for parallel invocation. # 提交一个Block到队列并发调用 * @discussion * Submits a block to...
2018-09-06 17:20:38 689
原创 GCD全解-04-dispatch_barrier_sync/async-线程阻塞
dispatch_barrier_syncdispatch_barrier_asyncdemo小结dispatch_barrier_sync# Submits a barrier block for synchronous execution on a dispatch queue.# relevant only on DISPATCH_QUEUE_CONCUR...
2018-09-06 17:18:31 1536
原创 GCD全解-03-dispatch_after/dispatch_time-延迟调度和操作
dispatch_after延时操作的API,通常Queue会在主线程,但是也可以自定义线程* @functoin Schedule a block for execution on a given queue at a specified time. * @param when * A temporal milestone returned by dispatch_time() or...
2018-09-06 17:13:22 2374
原创 UIBezierPath & CAShapeLayer
UIBezierPath可以绘制你想要的所有图形, 因为其基于GPU的绘制相对于drawRect方法在移动设备上的优势更加明显实现代码 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib....
2018-09-04 20:24:45 233
原创 iPad键盘适配
iPad键盘弹出样式有三种如何拆分和移动 iPad 上的键盘: https://support.apple.com/zh-cn/HT207521 在iOS系统中启用和禁用iPad分裂键盘: https://zh.wikihow.com/%E5%9C%A8iOS%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%90%AF%E7%94%A8%E5%92%8C%E7%A6%81%E...
2018-09-04 20:14:44 1324
原创 GCD全解-02-dispatch_queue-调度队列
队列分类串行队列 :DISPATCH_QUEUE_SERIAL@discussion A dispatch queue that invokes blocks serially in FIFO order.#define DISPATCH_QUEUE_SERIAL NULLdispatch_get_main_queue();@discussion Returns th...
2018-08-30 16:00:40 523
原创 GCD全解-01-dispatch-iOS系统调度
dispatch_queuehelp both the system and your application to run faster, more efficiently, and with improved responsiveness. Grand Central Dispatch (GCD) comprises language features, runtime libra...
2018-08-30 15:56:09 670
原创 操作系统原理及应用
操作系统原理及应用第1章 操作系统概论第2章 进程管理第3章 处理及调度与死锁第 7 章 Linux网络基础操作系统原理及应用第1章 操作系统概论现代计算机系统一般采用多任务并发执行方式,计算机的资源不是有一个程序在运行时单独占用,而是由多个并发运行的程序共享使用。操作系统的目标之一就是同一管理分配计算机系统资源。处理机管理处理机的任务是运行程序...
2018-08-30 15:49:33 3920
原创 操作系统名词大全
Operating SystemMachMacintoshUNIXPOSIXDarwinFreeBSDSolaris x86Linux术语表Operating System操作系统(Operating System,简称OS)传统上是负责对计算机硬件直接控制及管理的系统软件。操作系统的功能一般包括处理器管理、存储管理、文件管理、设备管理和作业管理等。...
2018-08-30 15:48:52 4354
原创 计算机系统漫游
编译过程简介系统的硬件组成进程与上下文编译过程简介hello程序的生命周期是从一个高级C语言程序开始的,因为这种形式能够被人读懂。然而,为了在系统上运行hello.c程序,每条C语句都必须被其他程序转化为一系列的低级机器语言指令。然后这些指令按照一种称为可执行目标程序的格式打好包,并以二进制磁盘文件的形式存放起来。目标程序也称为可执行目标文件。 在这里,GCC编译器驱动程序...
2018-08-30 15:48:18 290
转载 CSDN-markdown语法
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...
2018-08-30 15:42:18 135
原创 linkMap深度解析
# Symbols:# Address Size File Name这里表明了当前的方法所属的文件和占用内存的大小# Object files:这个文件表明了上述file中的序号和对应的文件名称我们可以通过对file和size整体的分析每个类中方法的大小来确定这个文件占用内存的大小// Path记录的是这个LinkMap对应的安装包的地址# Path: /Users/zh...
2018-08-26 10:01:52 4346
原创 Doxygen GUI 词汇
DOXYFILE_ENCODING 指定文件中所有字符的编码格式。在此标记出现之前默认使用UTF-8。Doxygen 可以使用libiconv(或在libc中创建iconv)实现编码转换。查阅http://www.gnu.org/software/libiconv 中列出的编码格式。PROJECT_NAME 此标记是一个单词(或者使用双引号可包含一个字串),用于标识生成的文档项目,这个名称...
2018-08-26 09:58:38 310
原创 pod install abort完美解决方案
背景: 更新了系统10.12.6,xcode9,iOS11.0.1 报错:pod install abort 解决逆推:需要升级Ruby版本到2.2.2;需要升级Homebrew版本(卸载重装);需要升级Commend Line Tools;步骤1:安装HomeBrew/卸载更新#为什么要更新HomeBrew?报错1:Error: /usr/local is not writ...
2018-08-26 09:57:29 1069
转载 carthage静态库处理
Build static frameworks to speed up your app’s launch timesCarthage supports building static frameworks in place of dynamic frameworks when used in concert with Keith Smiley’s ld.py script, publishe...
2018-08-26 09:53:22 752
原创 carthage命令
压缩carthage archive Archives built frameworks into a zip that Carthage can usebootstrap Check out and build the project's dependenciesbuild Build the project's dep...
2018-08-26 09:52:36 333
原创 carthage文件与配置
CartfileoriginversionCartfile.privateCartfile.resolvedCarthage/BuildCarthage/CheckoutsWith submodules~/Library/Caches/org.carthage.CarthageKitBinary Project SpecificationCartf...
2018-08-26 09:52:13 1160
原创 Carthage
Carthage基本流程创建一个Cartfile文件,里面包含你将要在你项目中使用的frameworks.运行Carthage,这将获取和编译你列出来的framework.将编译的.framework二进制文件拖进你的项目工程.Create a Cartfile that lists the frameworks you’d like to use in your project.R...
2018-08-26 09:51:40 589
原创 版本号规范
版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号:当你做了不兼容的 API 修改, 次版本号:当你做了向下兼容的功能性新增, 修订号:当你做了向下兼容的问题修正。 先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。在软件管理的领域里存在着被称作“依赖地狱”的死亡之谷, 系统规模越大,加入的套件越多,你就越有可能在未来的某一天发现自己已...
2018-08-25 20:45:53 1622
原创 RSA非对称加密
RSA基本原理RSA使用”秘匙对”对数据进行加密解密.在加密解密数据前,需要先生成公钥(public key)和私钥(private key). 公钥(public key): 用于加密数据. 用于公开, 一般存放在数据提供方, 例如iOS客户端. 私钥(private key): 用于解密数据. 必须保密, 私钥泄露会造成安全问题.iOS中的Security.framework提供了...
2018-08-25 20:43:35 260
原创 AES高级加密标准
什么是AES?加密原理实现 FBEncryptorAESAES设置加密模式ECB模式CBC模式CFB模式OFB模式什么是AES?高级加密标准(英语:Advanced Encryption Standard,缩写:AES),是美国联邦政府采用的一种区块加密标准。 这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。 2006年,高级加密标准已...
2018-08-25 20:39:43 1877
原创 base64编码解码
Base64编码原理base64编码解码实现base64的使用Base64编码原理Base64编码之所以称为Base64,是因为其使用64个字符来对任意数据进行编码, 同理有Base32、Base16编码。标准Base64编码使用的64个字符为:Base64编码表这64个字符是各种字符编码(比如ASCII编码)所使用字符的子集,基本,并且可打印。 唯一有点特殊...
2018-08-25 20:39:21 411
原创 MD5校验值
MD5是什么?原理、效果与特点MD5改进MD5使用MD5加盐MD5是什么?MD5:全称是Message Digest Algorithm 5,译为“消息摘要算法第5版”原理、效果与特点原理:文件”指纹” 世界上没有两个完全一模一样的指纹(不同的文件加密之后,不会出现两个一样的值.)作用:一般用作文件检验效果:对输入信息生成唯一的128位散列值(3...
2018-08-25 20:38:48 2101
原创 对称&非对称加密
对称性加密非对称性加密常见加密方式简介对称性加密对称加密(英语:Symmetric-key algorithm)又称为对称加密、私钥加密、共享密钥加密,是密码学中的一类加密算法。这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。实务上,这组密钥成为在两个或多个成员间的共同秘密,以便维持专属的通讯联系。与公开密钥加密相比,要求双方取得相同的密...
2018-08-25 17:25:22 366
原创 Doxygen注释格式
doxygen官方网站: http://www.stack.nl/~dimitri/doxygen/ IBM学习用 doxygen 生成源码文档: https://www.ibm.com/developerworks/cn/aix/library/au-learningdoxygen/index.html
2018-08-25 17:20:21 1172
原创 使用Bazel创建iOS应用
Bazel简介Bazel是一个Google开源的构建和测试工具,Bazel支持多种语言的项目,并为多个平台构建输出。Bazel的主要特点如下:高级语言构建。Bazel使用一种抽象的、人类可读的语言在高语义级别上描述项目的构建属性。与其他工具不同的是,Bazel使用的是库、二进制文件、脚本和数据集的概念,这样可以避免编写对编译器和链接器等工具的单独调用的复杂性。又快又可靠。Bazel缓存...
2018-08-20 15:07:06 3182 1
原创 UIWebview 请求被离奇cancel
Error Domain=NSURLErrorDomain Code=-999 “已取消” UserInfo={NSErrorFailingURLKey=https://api.leancloud.cn/1.1/batch/save, NSLocalizedDescription=已取消, NSErrorFailingURLStringKey=https://api.leancloud.cn/1....
2018-08-20 11:09:21 371
原创 AFN3.2第5篇-AFURLSessionManager
AFURLSessionManager目录AFURLSessionManager目录AFURLSessionManager概述AFURLSessionManager.h 摘要属性初始化方法NSURLSessionDataTaskNSURLSessionUploadTaskNSURLSessionDownloadTaskProgress of Tasks设置自定制Block...
2018-08-20 11:08:24 434
原创 AFN3.2第4篇-AFURLResponseSerialization
AFURLResponseSerialization 目录AFURLResponseSerialization 目录AFURLResponseSerialization结构AFURLResponseSerialization.hAFURLResponseSerialization.m对Error的封装处理去除null验证response的有效性AFJSONResponse...
2018-08-20 11:08:00 343
原创 AFN3.2第3篇-AFURLRequestSerialization
AFURLRequestSerialization目录AFURLRequestSerialization目录AFURLRequestSerialization.h协议属性申明初始化与设置方法GET, HEAD, and DELETE请求AFMultipartFormDataAFJSONRequestSerializerAFPropertyListRequestSerializ...
2018-08-20 11:07:33 555
原创 AFN3.2第2篇-AFSecurityPolicy
AFSecurityPolicy.h安全策略枚举属性描述初始化方法验证方法AFSecurityPolicy.mAFSecurityPolicy总结AFSecurityPolicy.h安全策略枚举//安全策略枚举typedef NS_ENUM(NSUInteger, AFSSLPinningMode) { /* 只要是系统信任的...
2018-08-20 11:06:59 633
深入解析MacOSX+iOS操作系统
2018-08-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人