自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 WKWebView替换UIWebView

1.引入头文件#import <WebKit/WebKit.h>2.先使用WKWebView基本方法写个例子,加载baidu页面,写法跟UIWebView类似- (void)viewDidLoad { [super viewDidLoad]; // Do any add...

2017-08-16 19:17:03 394 1

原创 tabar突起按钮点击

Edit tabar突起按钮点击 之前面试经常问到tabbar突出按钮该如何点击,只知道用Hittest来解决,但是到底该重写哪个view的hitTest方法我不确定。刚开始肯定想要的是tabBar,但是tabBar的本身没在点击区域,我以为压根不会走进tabBar的HitTest...

2017-08-02 13:12:24 542 0

转载 使用NSProxy和NSObject设计代理类的差异

转自:http://www.tanhao.me/code/160702.html/?utm_source=tuicool&utm_medium=referral 如有侵犯,请来信oiken@qq.com 经常发现在一些需要使用消息转发而创建代理类时, 不同的...

2017-07-28 17:23:44 201 0

转载 代码质量以及内存泄露排查总结

想体验一把 CentOS 系统玩一下命令行?试试腾讯云上实验室吧 https://cloud.tencent.com/developer/labs 原文链接:http://www.jianshu.com/p/4e447f1d8ffa 在几周的稳定性工作中, 我对现有内涵iOS代码进行了...

2017-07-28 16:13:57 1076 0

原创 将model转化为字典

将model转化为字典 刚入行时就见过项目里有mode转化为字典的代码,后来用过MJExtension的第三方库,非常好用,其实原理就是利用runtime遍历所有属性值,然后进行转化。但是自己从来没有动手写过~~~今天亲自写一写 1.先用runtime遍历所有属性值代码如下:- (NSDictio...

2017-07-26 17:45:57 6252 1

转载 使用appscript+python来控制Mac下的GUI应用程序

在Mac下,appscript是一个与应用程序通信交互的强大工具。用Python的appscript模块,可以在不用学习appscript的情况下也能做到与很多应用程序交互的功能。  打开Mac的终端,安装很简单:  sudo easy_install appscript  然后运行...

2017-07-14 15:28:18 4538 0

转载 python 编码问题:'ascii' codec can't encode characters in position 的解决方案

报错: 'ascii' codec can't encode characters in position 8-50: ordinal not in range(128) Python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,pyt...

2017-06-21 10:56:37 492 0

转载 优先级反转

什么是优先级反转?     优先级反转是指一个低优先级的任务持有一个被高优先级任务所需要的共享资源。高优先任务由于因资源缺乏而处于受阻状态,一直等到低优先级任务释放资源为止。而低优先级获得的CPU时间少,如果此时有优先级处于两者之间的任务,并且不需要那个共享资源,则该中优先级的任务反而超过这两个...

2017-05-17 18:05:57 176 0

转载 iOS调试之Reveal插件-RevealLoader

要使用RevealLoader,必须要越狱设备才行。打开Cydia,搜索栏搜索RevealLoader。如图,点击RevealLoader即可,然后点击继续,接下来就等着安装机可以了。(不过在ipad上我试了试不行,能安装上,但列表是空的) 3.pic.jpg 安装完后打开系统的设置,...

2017-05-14 15:36:56 1131 0

转载 iOS陷阱--NSDateFormatter的线程安全性

经常需要将NSDate和NSString进行互转,一般我们会这么写: NSDate转NSString NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@”y...

2017-04-15 16:36:38 836 0

转载 iOS 开发中的八种锁(Lock)

锁之前的性能的图表: lock_benchmark.png 发现除了@synchronized 用过,其他的都陌生的很,可以说完全不知道啥玩意儿~ 于是怀着惭愧的心情赶紧把这些锁学习了下,废话不多说,我们开始: 锁 是什么意思? 我们在使用多线程的时候多个...

2017-04-15 16:21:04 224 0

转载 不再安全的 OSSpinLock

昨天有位开发者在 Github 上给我提了一个 issue ,里面指出 OSSpinLock 在新版 iOS 中已经不能再保证安全了,并提供了几个相关资料的链接。我仔细查了一下相关资料,确认了这个让人不爽的问题。 OSSpinLock 的问题 2015-12-14 那天, swift-...

2017-04-15 16:15:10 551 0

转载 Xcode8 安装XcodeColors插件与CocoaLumberjack工具

工欲善其事必先利其器,好的开发者一定是懂得利用工具来提高自己的效率的,Xcode有很多第三方插件可以使用,最近发现一个可以给控制台着色的工具XcodeColors,结合CocoaLumberjack一起使用可以让控制台有选择的输出信息,可以把输出到控制台的信息分为多种类型,在不同场景下输出不同的信...

2017-04-15 11:37:06 3042 1

原创 移动开发中MVC模式和分层

MVC在界面开发中被奉为设计的典范,在移动开发中也是 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。 它将业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用...

2017-03-20 09:49:59 396 0

转载 iOS组件化思路

一、大神博客研读 随着应用需求逐步迭代,应用的代码体积将会越来越大,为了更好的管理应用工程,我们开始借助CocoaPods版本管理工具对原有应用工程进行拆分。但是仅仅完成代码拆分还不足以解决业务之间的代码耦合,为了更好的让拆分出去的业务工程能够独立运行,必须进行组件拆分并且实现组件服务化。 ...

2017-03-18 20:42:39 262 0

转载 iOS网络优化

(1)博客 a,阿里无线11.11:手机淘宝 521 性能优化项目揭秘      阿里无线11.11:手机淘宝移动端接入网关基础架构演进之路 b,携程App的网络性能优化实践 c,   charles使用简介 d, 无线性能优化:域名收敛的过程 e, App域名劫持之DNS高可...

2017-03-18 20:41:34 455 0

转载 iOS封装功能生成 .framework

前言       如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件。然而,这种方法并不是很优雅。它会暴露所有的实现细节,而这些实现你可能并不想开源出来。此外,开发者也可能并不想看到你的所有代码,因为他们可能仅仅希望将你的这份漂亮代码的一部分植入自己的应用中。       ...

2017-03-18 20:40:43 333 0

转载 【iOS app加密】iOS app之游戏加密防破解

【iOS app加密】iOS app之游戏加密防破解。iOS app游戏类应用有一个很泛滥但被视为鸡肋的问题,那就是iOS app被破解的问题。因为国内大多数游戏靠内购和广告盈利,游戏安装包也只是在早期象征性的收费,之后就会免费,所以很多开发者对iOS app游戏从只能在购买者设备安装变成可免费到...

2017-03-18 20:35:57 1030 0

转载 iOS 并发编程之 Operation Queues

现如今移动设备也早已经进入了多核心 CPU 时代,并且随着时间的推移,CPU 的核心数只会增加不会减少。而作为软件开发者,我们需要做的就是尽可能地提高应用的并发性,来充分利用这些多核心 CPU 的性能。在 iOS 开发中,我们主要可以通过 Operation Queues、Dispatch ...

2017-03-18 20:32:39 492 0

转载 GCD小结

0. Brief Introduction      GCD,全称Grand Central Dispath,是苹果开发的一种支持并行操作的机制。它的主要部件是一个FIFO队列和一个线程池,前者用来添加任务,后者用来执行任务。      GCD中的FIFO队列称为dispatch qu...

2017-03-18 20:31:25 327 0

转载 iOS中的gzip解压

最近做的一个东西中,需要从网络获取xml文件,但是该文件用了gzip压缩的。搜索一 下有人说gzip压缩的用urlrequest可以自己解压,但是这必须从服务器返回的header中有accept-Encoding说明是gzip 的。也就是用这句就可以实现自解压: [urlRequest ...

2017-03-18 20:29:29 903 0

转载 iOS GPUImage 的使用

GPUImage是现在做滤镜最主流的开源框架,没有之一。作者BradLarson基于openGL对图片处理单元进行封装,提供出GPUImageFilter基类,配合shader,常用滤镜都拿下不是问题。 一、安装 (1):首先下载GPUImage  https://gith...

2017-03-18 20:28:36 170 0

转载 iOS-私有API与runtime

序 有朋友在做类似iTool的功能,跟我聊起来,这几天闲,就写了一个demo,不是正经做这个,还很粗略,具体干货诸位等这位朋友自己发文吧。 DEMO https://github.com/liulishuo/testAppList 思路 iOS9白名单的上限是50个,如果想绕过这个限...

2017-03-18 20:27:16 236 0

转载 让编译器对一些警告闭嘴

慢慢搜集一些编译器告警的熄灭方法。 1.方法弃用告警 [objc] view plain copy   #pragma clang diagnostic push      #pragma clang diagnostic ignor...

2017-03-18 20:25:34 464 0

转载 让编译器对一些警告闭嘴

慢慢搜集一些编译器告警的熄灭方法。 1.方法弃用告警 [objc] view plain copy #pragma clang diagnostic push      #pragma clang diagnostic igno...

2017-03-18 20:24:36 189 0

转载 Injection for Xcode:成吨的提高开发效率

今天强烈推荐一个Xcode高端必备插件:Injection Plugin for Xcode 直接放demo演示动图: 我很久以前就希望有这么一种功能,直接修改某行代码,F5一下就能刷新这个实例,而不用重写build整个项目。靠夭,我不是在说前端! 没想居然有一天,梦想照...

2017-03-18 20:23:48 146 0

转载 并发编程—OSAtomic原子操作

并发编程一个主要问题就是如何同步数据。同步数据的方式有很多种,这里我们介绍一下libkern/OSAtomic.h。这个头文件包含是大量关于原子操作和同步操作的函数,如果要对数据进行同步操作,这里面的函数可以作为我们的首选项。不同平台这些函数的实现是自定义的。另外,它们是线程安全的。 需...

2017-03-18 20:22:42 490 0

转载 JSPatch热修复简单使用

前言 一说到热修复,可能很多人会觉得应该很复杂,很难用(我以前是这么觉得的。。。),然后最近入职的公司的项目,刚上线就发现了重大bug,然后提新版,然后审核,用了差不多4天的时间,这确实很耽误事的,然后就决定研究下热修复的使用,为以后的突发bug做好准备,实际发现,使用起来蛮简单的,这里以一个小...

2017-03-18 20:19:08 146 0

转载 iOS 离屏渲染的研究

GPU渲染机制: CPU 计算好显示内容提交到 GPU,GPU 渲染完成后将渲染结果放入帧缓冲区,随后视频控制器会按照 VSync 信号逐行读取帧缓冲区的数据,经过可能的数模转换传递给显示器显示。 GPU屏幕渲染有以下两种方式: On-Screen Rendering 意为...

2017-03-18 20:16:31 149 0

转载 什么是硬件加速?GPU

iOS性能优化分析 首先要熟悉几个概念 PNG 和 JPG 的区别是什么? png格式的图片有alpha通道,jpeg则没有。png无损压缩,jpeg允许你选择0-100%的压缩质量。如果需要alpha通道(透明),就只能用png格式.CPU 和 GPU 如果想看看两者的区别,先得...

2017-03-18 20:14:45 488 0

转载 CoreText(图文混排)详解+Demo

写这篇文章之前,在网上找了不少资料,也看了不少大牛们的文章;在这结合我自己对CoreText的理解,今晚整理出来分享给爱学习的你们,因为CoreText比较复杂所以需要用大量文字来讲解,最后有Demo。 一、CoreText简介    CoreText是用于处理文字和字体的底层技术。它直接...

2017-03-18 20:13:19 371 0

转载 CoreData(数据库升级 )版本迁移-iOS App升级安装

如果IOS App 使用到CoreData,并且在上一个版本上有数据库更新(新增表、字段等操作),那在覆盖安装程序时就要进行CoreData数据库的迁移,具体操作如下: 1.选中你的mydata.xcdatamodeld文件,选择菜单editor->Add Model Version  比...

2017-03-18 20:12:23 211 0

转载 iOS开发 Coretext基本用法

   CSDN博   API接口文档。 https://developer.apple.com/library/mac/#documentation/Carbon/Reference/CoreText_Framework_...

2017-03-18 20:10:40 146 0

转载 iOS app性能优化的那些事 - 树下的老男孩 - 简书

iPhone上面的应用一直都是以流畅的操作体验而著称,但是由于之前开发人员把注意力更多的放在开发功能上面,比较少去考虑性能的问题,可能这其中涉及到objective-c,c++跟lua,优化起来相对复杂一些,导致应用在比如touch等较低端的产品上,光从启动到进入页面就花了将近一分钟的时间,页面之...

2017-03-18 20:07:01 210 0

原创 QLPreviewController 预览文件

发现了一个有意思的framewokr:quick look.大概可以展示:图片,office, pdf等文件。文件可以通过网络下载到app内,也可以初始化放在项目里。 如果放在项目里,一定要在copy bundle resources那拖进去,否则读取不到! ag1.首先要写一个实现Q...

2017-03-04 20:55:07 932 0

转载 GCD 之任务操作(Dispatch Block)

在向队列中添加任务时,可以直接在对应的函数中添加 block。但是如果想对任务进行操作,比如监听任务、取消任务,就需要获取对应的 block。 创建block object-c 创建 block 有两种方式,第一种方式如下: dispatch_block_t dispa...

2017-03-01 13:38:01 237 0

原创 dispatch_async_f 详解

之前面试的时候被问过一个问题:你知道dispatch_async_f 吗?我一脸蒙比,问题好变态,太偏了吧,见过但是没用过,不知道干啥的。。今天一时兴起,想了解一下,下面是参数的官方文档: context: The application-defined context parameter to ...

2017-03-01 13:03:38 1885 0

原创 CADisplayLink

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // _scrollView = [UISc...

2017-02-24 15:09:27 223 0

原创 image scale和size的关系与SDScaledImageForKey

之前总是理解不了scale和size的关系,只知道图片一般给三张b.png, b@2x.png, b@3x.png。对应不同的手机,iphone6以下的retain屏都是@2x, plus用的是@3x。 如:120*120的图片     1x的size(120*120)         2x的si...

2017-02-21 23:37:01 560 0

转载 利用layer的FillRule属性生成一个空心的layer

-(void)testHoleRect{         UIView* aView = [[UIViewalloc] initWithFrame:CGRectMake(100,80, 100, 100)];     [self.viewaddSubview:aView];     //用来标识l...

2016-12-16 13:09:22 238 0

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