自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(324)
  • 资源 (3)
  • 收藏
  • 关注

转载 UIView 绘制渲染机制 与优化方式

APP页面优化对小编来说一直是难题,最近一直在不断的学习和总结 ,发现APP页面优化说到底离不开view的绘制和渲染机制。网上有很多精彩的博客,小编借鉴之前N多大牛研究成果,同时结合自己遇到的一些问题,整理了这篇博客。尝试和大家一起探讨以下问题:view绘制渲染机制和runloop什么关系? 所谓的列表卡顿,到底是什么原因引发的? 我们经常在drawrect方法里绘制代

2017-07-31 02:32:58 1389

转载 IOS下的 NSTimer与Run loop Modes

一.NSRunLoop在Cocoa中,每个线程(NSThread)对象中内部都有一个run loop(NSRunLoop)对象用来循环处理输入事件,处理的事件包括两类,一是来自Input sources的异步事件,一是来自Timer sources的同步事件;run Loop在处理输入事件时会产生通知,可以通过Core Foundation向线程中添加run-loop obse

2017-07-31 01:47:21 633

转载 重写了loadView,一般用在什么地方

/** * 如果不实现loadView方法,控制器默认有一个loadView方法, 默认系统怎么加载控制器的view呢,先去storyboard里面找,没有找到 再去与控制器名称相同的xib里面找,没有找到,在去名称相同去掉Controller的xib 里面找,还没有找到,程序员也没有重写loadView方法,那么系统默认会 创建一个view,颜色是clearColor,如果实现了lo

2017-04-17 14:20:02 2493

转载 ARC下 打印引用计数 和 OC对象与CF对象之间的桥接(bridge)

1、打印引用计数        __strong__typeof(weakSelf)strongSelf = weakSelf;        printf("retain count = %ld\n",CFGetRetainCount((__bridge CFTypeRef)(strongSelf)));2、__bridge的使用在开发iOS应用程序时我们有时

2017-04-14 16:57:04 683

转载 iOS QRcode识别及相册图片二维码读取识别

对二维码的处理及系统原生API扫描、 Zbar扫描和Zing扫描 比较iOS原生API系统扫描的效率是最高,反正包括各种你见过的没见过的码,但是有一点我不是很清楚 iOS7 扫描二维码可以,但从相册照片读取二维码苹果不支持,必须是iOS8+。https://github.com/yannickl/QRCodeReaderViewControllerhttps://githu

2017-03-30 18:33:13 6037

转载 UIWebview使用缓存并且保证实时性(iOS web资源缓存解决方案、异步后台更新。离线缓存)

webview缓存策略的介绍使用webview加载页面的时候,最理想的情况是: 资源文件没有更新,就只加载缓存文件。如果有更新,则第一时间使用新的文件。UIWebview中提供的缓存策略NSURLRequestUseProtocolCachePolicy 缓存策略定义在 web 协议实现中,用于请求特定的URL。是默认的URL缓存策略。NSURLRequestReloadI

2017-03-30 18:30:37 9789

转载 tableView滚动不流畅(二)

tableView滚动不流畅涉及的原因是方方面面的, 其中复杂的高度计算也是令滚动卡顿的多发原因之一, 如果你的cell的高度相当复杂, 而且你又不得不在viewController的tableView代理方法中处理这些高度逻辑, 这将导致viewController代码臃肿之余, 也会成为tableView卡顿的重要原因为此wwdc有专门的一期讲述了如何合适的设置rowH

2017-03-27 15:46:35 574

转载 tableview 卡顿优化 加强 iOS 里的列表滚动时的顺畅感

第一种方法:如果你想要如丝般顺滑的效果,那么:1、每次都看一下有没有能重用的 cell,而不是永远重新新建(这个是 UITableView 的常识)2、Cell 里尽量不要用 UIView 而是全部自己用 drawRect 画(之前因为 iOS 有 bug,这样做会有性能上质的飞越。也有很多大神写过很多文章解释原理,有兴趣的自己去看看吧我就不做复制粘贴了。后来 iOS 也改掉了这个

2017-03-27 15:44:42 4484 1

转载 ios

在访问数据库或者文件的时候,我们可以使用Serial Dispatch Queue可避免数据竞争问题dispatch_barrier_async如果我们在平常编码中,如果要保证某个属性可以线程安全的读写,如何写的:#import @interface ZYPerson : NSObject@property (nonatomic, copy) NSStrin

2017-03-20 13:56:06 330

转载 IOS异步获取数据并刷新界面dispatch_async的使用方法

在ios的开发和学习中多线程编程是必须会遇到并用到的。在java中以及Android开发中,大量的后台运行,异步消息队列,基本都是运用了多线程来实现。 同样在,在ios移动开发和Android基本是很类似的一种模型。 但是很多时候,在应用开发中,我们会发现本身并没有自己编码去处理一些并发的事件,去开辟新的子线程等等。 (虽然一般的调用sdk发起一个网络请求,系统都是会默认给你新起一

2017-03-20 13:50:56 718

原创 有关iOS同步

场景1:如果10个图片本身相互间是没什么联系,但是,最后一个事件需要处理计算这10个图片的总容量值。 那么可以用 dispatch_group_asyncGCD提供两种方式支持dispatch队列同步,即dispatch组和信号量。一、dispatch组(dispatch group)1. 创建dispatch组dispatch_group_t gr

2017-03-20 11:42:19 274

转载 iOS开发——创建你自己的Framework

(原文:How to Create a Framework for iOS 作者:Sam Davies 译者:Mr_cyz )在上一篇教程(中译版)中,你学到了怎么样创建一个可复用的圆形旋钮控件。然而你可能不清楚怎样让其他开发者更方便地去复用它。如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件。然而,这种方法并不是很优雅。它会暴露所有的实现细节,而这些实现你可能并不想

2017-03-17 10:02:29 1212

转载 iOS 崩溃Crash解析

iOS崩溃是让iOS开发人员比较头痛的事情,app崩溃了,说明代码写的有问题,这时如何快速定位到崩溃的地方很重要。调试阶段是比较容易找到出问题的地方的,但是已经上线的app并分析崩溃报告就比较麻烦了。之前我总是找到一个改一个,并靠别人测试重现来找出问题的地方,这样往往比较耗费时间。而且比较难找到原因的时候每次都是到网上找各种资源搜索,解决了之后也没有认真分析原因及收集,时间长了之后就会忘记

2017-03-07 15:43:05 2114

转载 cornerstone创建分支与合并代码方法整理

(一) 创建分支。从云办公主干(Trunk)创建一个分支,放到branches中。 步骤:选择主干中文件(JJSMOA)右击选择Branch输入分支名称(JJSMOA_V3.0.1)并选择需要存放的位置,默认的是错误的位置,需要重新选择(此处选择^/JJSMOA/branches)点击创建分支即可。 创建完成后,在branch文件夹下面就可以看到刚刚

2016-12-07 15:45:37 3619 1

转载 UIScrollView左右滚动判断

需要实现UIScrollView左右拖动加载,首先设置pageEnable=YES;然后通过Delegate实现相关方法。//将要开始拖拽,手指已经放在view上并准备拖动的那一刻- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{    //拖动前的起始坐标    startContentOffse

2016-07-20 10:21:55 625

转载 视频有关“技术调研”

转载地址:http://www.tuicool.com/articles/3qaUnqF最近的一个项目涉及到视频播放,在一段时间的“技术调研”之后完成的项目的完整编码和测试。回过头看时,发现自己在所谓的“技术调研”阶段简直是在乱撞,毫无章法。因此总结一文于此。以备后查。脑洞开一下和拍照相仿,都是需要一个主题,也就是要表现什么。同样,调研的主体要明确。比如说,要研究视频播放。

2016-07-16 12:20:11 835

转载 UIWebView 无缝切换到 WKWebView

WKWebView 是IOS8新增的 Web浏览视图优点:   加载速度  比UIWebView提升差不多一倍的, 内存使用上面,反而还少了一半。 缺点:   WKWebView 不支持缓存 和   NSURLProtocol 拦截了我建议如果对缓存不高的页面可以使用,用户体验会提高很多。  由于项目中以前都是用 UIWebVie

2016-07-16 10:49:02 791

转载 FMDB源码分析

一、前言如上一章所讲,FMDB源码主要有以下几个文件组成:FMResultSet : 表示FMDatabase执行查询之后的结果集。FMDatabase : 表示一个单独的SQLite数据库操作实例,通过它可以对数据库进行增删改查等等操作。FMDatabaseAdditions : 扩展FMDatabase类,新增对查询结果只返回单个值的方法进行简化,对表、列是否存

2016-06-14 23:19:54 1033

转载 JSONModel几个属性

JSONModel, Mantle这两个开源库都是用来进行封装JSON->Model的, 想想看, 直接向服务器发起一个请求,然后回来后,就是一个Model, 直接使用, 这是一个多么美好的事情。 感谢GitHub的开源精神。那我们开始吧。 先说说这两个的差别。这两个使用的方法其实都差不多, 详细的使用方法请直接GitHub上找, 还是比较简单地。

2016-06-10 01:05:01 1540

转载 JSONModel 使用特性

:假设我们有这样一个JSON数据: {"id":"10", "country":"China", "dialCode": 49, "isInEurope":true}创建一个新的JSON数据模型,并且让他继承自JSONModel这个类,然后在你的.h文件里面申明这几个字段,比如下面::如果JSON认可你从JSON数据里面取出的所有相应的属性,JSONModel也

2016-06-10 01:03:03 639

转载 在数据结构使用 xml或json上的选择分析

1)对于复杂的数据结构使用XML,简单的数据结构可采用JSON。2)在互联网应用中数据传输中,提倡使用JSON。3)针对前后端的差异,可以在服务端使用XML,在前端使用JSON,两者之间的转换在服务器端完成。这样可以各取所长

2016-06-10 00:06:21 378

转载 ios 多线程——原子、非原子,自旋锁和互斥锁

nonatomic:非原子属性,线程不安全的,效率高atomic:原子属性,线程安全的,效率相对低。原子属性是一种单(线程)写多(线程)读的多线程技术,不过可能会出现脏数据atomic属性内部的锁称为 自旋锁凡是线程安全的对象,内部肯定会加锁。自旋锁和互斥锁 相同点:都能保证同一时间只有一个线程访问共享资源。都能保证线程安全。不同点: 互斥锁:如果共享数

2016-06-05 01:29:20 2363

转载 通读SDWebImage

原文  http://www.cnblogs.com/Mike-zh/p/5204240.html本文目录下载操作SDWebImageDownloaderOptions和下载过程实现 下载管理SDWebImageDownloader 缓存SDImageCache SDWebImageManager:按需下载->完成缓存->缓存管理等一系列完整的流程线 要写点关于

2016-05-05 20:04:56 1571

转载 SDWebImage在多线程下载图片时防止错乱的策略

在我们使用sd的时候,对tableView  上cell得图片进行异步下载的时候会遇到这样一个问题:由于cell的重用机制,在我们加载出一个cell的时候imageView数据源开启一个下载任务并返回一个image,当cell重用时,其数据源又会开启一个下载任务下载新的image,但关联的对象是同一个imageView,这个时候直接setImage时会发生错乱。SDWebImage

2016-05-05 20:00:18 3894

转载 SDWebImage源码分析

版本: 3.7SDWebImage是一个开源的第三方库,它提供了UIImageView的一个分类,以支持从远程服务器下载并缓存图片的功能。它具有以下功能:提供UIImageView的一个分类,以支持网络图片的加载与缓存管理一个异步的图片加载器一个异步的内存+磁盘图片缓存支持GIF图片支持WebP图片后台图片解压缩处理确保同一个URL的图片不被下载多次确保虚假的URL不会被反复加载确

2016-05-05 17:55:57 401

转载 图片缓存思路

一、iOS 利用SDWebImageRefreshCached 处理相同的url不同的image ,然后找到url为key,不同的value,去更新同一个nsdictionary缓存。图片API请求之间加上一层判断,如果能找到本地图片就不从网络上下载。www.baidu.com/a.jpg hash之后变成 a3232313fjkjffafadfjajfkajf存储到本

2016-05-05 16:42:17 901

转载 SDWebimage 相同url缓存图片对比问题

1.从服务器的策略来说,通常的做法会返回ETag和Lastmodified,client后续再次请求时,会带上上一次的ETag,服务端如果发现文件没有改变,会返回304,而一旦发生改变(就是你所说的文件换掉),则会返回新数据以及新的ETag。如此循环往复。2.经过查看源码,找到如下方法:- (void)sd_setImageWithURL:(NSURL *)url placeholde

2016-05-05 16:04:04 2753

转载 SDWebImagePrefetcher 类的引用

预取供将来使用缓存中的某些 Url。在低优先级中下载图像。@property (nonatomic, assign) NSUInteger maxConcurrentDownloadsUrl 在同一时间预取的最大数目。默认值为 3。@property (nonatomic, assign) SDWebImageOptions optionsPrefetche

2016-05-05 15:58:42 692

转载 在 OC 中实现消息的转发

转发:http://www.kittenyang.com/forwardinvocation/我正在写一个自定义的 TableView 滚动条,可以实时显示当前 Cell 的编号,比原生的黑条更具可视性。实现原理也很简单,KVO 监听 contentOffset 然后根据 public func indexPathForRowAtPoint(point: CGPoi

2016-04-26 22:19:29 434

转载 苹果Xcode帮助文档阅读指南

Xcode文档的结构如上图,打开后,整个文档界面有左面的侧栏和右面的内容区域构成。左面的侧栏可以选择不同的文档库。你的Xcode里面一般来说有一组不同版本的iOS文档库、一组不同版本的OS X文档库,以及一个Xcode文档库。如果你这里没有你要查看的文档库,你可以选择Xcode的Preferences菜单,然后选择Downloads -> Documentation。在

2016-04-25 23:40:42 1201

转载 runloop 与autorelase对象、Autorelease Pool 在什么时候释放

iOS的运行时是由一个一个runloop组成的,每个runloop都会执行下图所示的一些步骤:每个runloop中都创建一个Autorelease Pool,并在runloop的末尾进行释放,所以,一般情况下,每个接受autorelease消息的对象,都会在下个runloop开始前被释放。也就是说,在一段同步的代码中执行过程中,生成的对象接受autorelease消息后,一般是不会在代

2016-04-25 23:29:16 1874

转载 autorelease和autoreleasepool 注意事项优缺点

1. 在使用Dispatch Queue时, 虽然其Pool中每个thread都会有autoreleasepool,但是如果我们给的task每个都创建一些对象,并做autorelease,那若提交的task太多,比如有100000个,那在thread退出前,这些内存都无法释放,等于说有大量内存被占用而释放不了,也类似于leak了,所以这时,最好每个提交的task都有自己的autoreleasepo

2016-04-25 23:13:27 1518

转载 @autoreleasepool 在什么时候使用

根据 Apple的文档 ,使用场景如下:写基于命令行的的程序时,就是没有UI框架,如AppKit等Cocoa框架时。写循环,循环里面包含了大量临时创建的对象。(本文的例子)创建了新的线程。(非Cocoa程序创建线程时才需要)长时间在后台运行的任务。atureleasepool自动释放池自动释放池存储于内存中的栈中遵循"先进后出"原则#import  #imp

2016-04-25 23:07:40 2256

转载 NSURLRequestCachePolicy 缓存的方式

1> NSURLRequestUseProtocolCachePolicy = 0, 默认的缓存策略, 如果缓存不存在,直接从服务端获取。如果缓存存在,会根据response中的Cache-Control字段判断下一步操作,如: Cache-Control字段为must-revalidata, 则询问服务端该数据是否有更新,无更新的话直接返回给用户缓存数据,若已更新,则请求服务端.

2016-04-25 17:09:39 338

转载 Mantle的优缺点

简要分析 先来简要分析一下各种构建model层方法的优点和缺点: 一、工具生成model 优点: 1、简单易用,新手也可以10秒上手 2、有一定的容错代码 3、代码生成相对工整和规范,部分工具还可以选择是否使用ARC 4、生成简单model耗时少 缺点: 

2016-04-20 23:46:20 1286

原创 Mantle 使用时与到问题

1. 当属性为weak时,默认设置为MTLModelEncodingBehaviorConditional,否则默认为MTLModelEncodingBehaviorUnconditional,设置完后,将其封装在NSNumber中并放入字典中。        MTLModelEncodingBehavior behavior = (attributes->weak ? MTLModelE

2016-04-20 23:44:17 973

原创 一个自定义服务以执行脚本实现类属性的快速整齐地排列

Note: 如果对于这些脚本命令还不熟悉,它们是相当好理解的。排序(sort)是按照字母顺序来的,`uniq`是会删除所有重复的行数。`uniq`在这里可能派不上用场,但是用它来管理`#import`,那是极好的。Mac OS X允许你创建整个操作系统全局通用的服务,你将用它来创建一个用在Xcode中的脚本服务,按如下步骤来设置:(1)使用Spotlight来搜索Automator

2016-04-18 15:46:33 356

转载 Lldb篇2 chisel来提高调试效率

LLdb篇2教你使用faceBook的chisel来提高调试效率首先如果使用lldb,最好你要学着使用chisel来提高效率,否则你会浪费很多的时间,除非你自己会写python脚本,自己封装一些lldb的命令。 安装chiselchisel的安装是十分简单,它是在终端通过brew安装的,具体可以点击链接参考github的安装说明,唯一需要注意的一点就是命令行安装完之后,

2016-04-12 14:30:13 653

转载 iOS调试技巧之LLDB

LLDB介绍LLDB 是一个有着 REPL 的特性和 C++ ,Python 插件的开源调试器。LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。调试器允许你在程序运行的特定时暂停它,你可以查看变量的值,执行自定的指令,并且按照你所认为合适的步骤来操作程序的进展。基础这里有一个简单的小程序,它会打印一个字符串。注意断点已经被加在第 8 行。断点可以通过点击 Xcode 的

2016-04-12 14:28:51 326

转载 关系型数据库和非关系型数据库区别

关系型数据库通过外键关联来建立表与表之间的关系,非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定比如 有一个学生的数据:    姓名:张三,性别:男,学号:12345,班级:二年级一班还有一个班级的数据:    班级:二年级一班,班主任:李四关系型数据库中,我们创建学生表和班级表

2016-04-08 22:29:18 1368

线程保活:

线程保活:

2022-03-16

快钱支付(ios)接口

快钱支付代码,详细的文档和接口以及通信参数。

2012-02-16

windows mobile平台上 蓝牙通信

手机的功能键可以当作PC上的鼠标来控制电脑

2010-02-28

空空如也

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

TA关注的人

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