自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lichuanlong007的博客

Simple things simple, complex things possible

  • 博客(60)
  • 收藏
  • 关注

转载 谈KVC、KVO(重点观察者模式)机制编程

一不小心,小明在《跟着贝尔去冒险》这个真人秀节目中看到了“一日警察,一世警察”的Laughing哥,整个节目除了贝尔吃牛睾丸都不用刀叉的不雅餐饮文化外,还是镜头少普通话跟小明一样烂的Laughing Sir那种冷静和沉着稳定留下了深刻印象,不由想起电视剧《学警狙击》中为了不暴露钟立文的身份,要求向自己补一枪的警匪卧底巅峰推动者--Laughing 哥。那么,卧底这样的工作,在我们程序里有没有呢

2016-10-20 18:26:58 411

转载 RunLoop 原理和核心机制

搞iOS之后一直没有深入研究过RunLoop,非常的惭愧。刚好前一阵子负责性能优化项目,需要利用RunLoop做性能优化和性能检测,趁着这个机会深入研究了RunLoop的原理和特性。RunLoop的定义当有持续的异步任务需求时,我们会创建一个独立的生命周期可控的线程。RunLoop就是控制线程生命周期并接收事件进行处理的机制。RunLoop是iOS事件响应与任务处理最核心的

2016-10-18 16:54:16 346

原创 多线程理解和我们为什么要使用线程

首先说下多线程出现的原因:为了解决负载均衡问题,充分利用CPU资源.为了提高CPU的使用率,采用多线程的方式去同时完成几件事情而不互相干扰.为了处理大量的IO操作时或处理的情况需要花费大量的时间等等,比如:读写文件,视频图像的采集,处理,显示,保存等多线程的好处:1.使用线程可以把占据时间长的程序中的任务放到后台去处理2.用户界面更加吸引人,这样比如用户点击了一个按

2016-10-08 16:44:44 5618

原创 iOS 地图CoreLocation定位

iOS8中使用CoreLocation定位1、在使用CoreLocation前需要调用如下函数【iOS8专用】:iOS8对定位进行了一些修改,其中包括定位授权的方法,CLLocationManager增加了下面的两个方法:(1)始终允许访问位置信息- (void)requestAlwaysAuthorization;(2)使用应用程序期间允许访问位置数据

2016-09-26 09:24:43 551

原创 UITableView的性能优化整理

为了使APP的性能有一个提高,避免了滑动tableView的时候出现卡顿的效果,同时在开发中tableView使用的频率较高,所以做了一个简单的整理列出了很多条,有耐心的可以看一看。一、 Cell内部控件的层次尽量的少,使用drawRect来画。二、 Cell内部所有显示的数据提前准备好,尽量少的进行实时计算。三、所有的控件大小提前计算好,不要每一次都计算。四、

2016-09-18 14:18:00 487

原创 iOS开发常用的宏

//字符串是否为空#define lStringIsEmpty(str) ([str isKindOfClass:[NSNull class]] || str == nil || [str length] < 1 ? YES : NO ) //数组是否为空#define lArrayIsEmpty(array) (array == nil || [array isKindOfClass:[

2016-09-13 10:10:10 200

原创 SQLite简介、常用SQL语句、SQL使用速查

一.SQLite 简介目标知道 SQLite 基本概念知道关系型数据库的基本概念和术语简介是一款轻量级数据库设计目标是嵌入式的占用资源少处理速度快当前版本 3.13,MAC 内置已经安装了 SQLite官方网站:http://www.sqlite.org/什么是 SQLiteSQLite 是一个 SQL 数据库引擎,具有:自给自足不需要任

2016-09-12 10:32:58 471

转载 iOS静态库.a开发

简介.a包是一种非开源代码共享程序代码的一种方式,对于接入方而言,看不到具体实现。通常随.a包提供给接入方的还有图片资源包.bundle和提供api接口的.h文件。制作步骤注:制作静态库通常伴随着调试demo一起,所以可以先建一个测试demo的工程,再在demo的target下以add a target方式添加静态库和图片资源包,但这种方式测试demo跟静态库文件都在一个工程目录下,个

2016-09-10 19:31:40 575

原创 SnapKit

SnapKitSnapKit 是 Masonry 框架的团队针对 Swift 全新开发的一套自动布局框架官方网站:http://snapkit.iogithub网站:https://github.com/SnapKit/SnapKit文档地址:http://snapkit.io/docs/SnapKit语法示意图如下:代码演练使用 SnapKit 替

2016-09-04 00:31:09 600

原创 AFNetworking

AFNetworkingATS 设置key>NSAppTransportSecuritykey>dict> key>NSAllowsArbitraryLoadskey> true/>dict>封装网络框架的必要性在应用程序开发中,一定要封装隔离网络框架示意图如下:OC 封装网络工具新建网络工具类 NetworkTools实现单例+

2016-09-04 00:30:19 220

原创 SDWebImage & SVProgressHUD

SDWebImage & SVProgressHUDSVProgressHUDSVProgressHUD 是使用 OC 开发的指示器使用非常广泛框架地址https://github.com/TransitApp/SVProgressHUD与 MBProgressHUD 对比SVProgressHUD只支持 ARC支持较新的苹果 API提供有素材包使用更简单

2016-09-04 00:28:33 228

原创 关于Xcode8_bate_6无法安装的问题

关于Xcode8_bate_6.xip无法安装的问题  需要版本10.11.5以上才可以安装,所以升级版本吧Xcode8_bate_6.xip还是支持官网下载,手动官网下载靠谱,文件太大无法分享百度云

2016-08-28 09:32:36 431

转载 MAC中用到的终端命令大全更新

OSX 的文件系统OSX 采用的Unix文件系统,所有文件都挂在跟目录 / 下面,所以不在要有Windows 下的盘符概念。你在桌面上看到的硬盘都挂在 /Volumes 下。比如接上个叫做 USBHD的移动硬盘,桌面上会显示出一个硬盘图标,它实际在哪里呢?在终端里执行 ls /Volumes/USBHD, 看看显示出的是不是这个移动硬盘的内容。根目录位置是

2016-08-25 18:25:56 2502

原创 iOS 最新版 CocoaPods 的安装流程

iOS 最新版 CocoaPods 的安装流程更新1.移除现有Ruby默认源$gem sources --remove https://rubygems.org/2.使用新的源(淘宝的源)$gem sources -a https://ruby.taobao.org/3.验证新源是否替换成功$gem sources -l4.安装CocoaPo

2016-08-24 09:15:11 208

原创 开发中ARC forbids explicit message send of 'dealloc'和 'autorelease' is unavailable: not available 解决

一 :能用截图的尽量不用代码 - - ,错误显示如图   一般情况下都是开启arc功能(ios5.0及之后的版本),毕竟不需要自己手动去释放,是一件比较轻松的事情。 但是我们在引用第三方的时候,基本上都是带release与retain的方法,这个时候代码编译就通不过(你懂的)可以设置部分文件不使用arc,这样就可以兼容了。 步骤: 加

2016-08-22 14:26:22 521

转载 企业帐号进行IPA的打包、分发、下载安装的详细流程(转载)

1,企业帐号介绍(1)使用企业开发帐号,我们可以发布一个 ipa 放到网上,所有人(包括越狱及非越狱设备)都可以直接通过链接下载安装,而不需要通过 AppStore 下载,也不需要安装任何证书。(2)当然,使用企业帐号发布的 iOS 应用是不能提交到 AppStore 上的。而且企业级开发账号也比个人帐号更贵些(299刀/年)。(3)既然叫企业帐号,就说明是用来开发企业自己的内部应用,

2016-08-19 22:10:12 971

转载 出现resignFirstResponder或者endEditing无效的解决办法

当你想要收回弹出的键盘时却发现平时用的resignFirstResponder和endEditing都失去作用时,应该考虑一下当前的TextField是否为第一响应者,如果不是第一响应者的话,自然下面的几个方法都没有效果,解决办法有二:1、找出当前第一响应者,然后resignFirstResponder。2、先对TextField becomeFirstResponder 然后再 resignFi

2016-08-19 20:06:36 2238

原创 iOS颜色开发设置详解

颜色设置:指定RGB,参数是:红、绿、黄、透明度,范围是0-1+ (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha;指定HSB,参数是:色调(hue),饱和的(saturation),亮度(brightness) + (UIColor

2016-08-19 18:55:24 2153

原创 2016年公司中开发中常用的Swift和iOS开源框架

总结一下2016年公司中开发中常用的Swift和iOS开源框架1:SDWebImage,UIImageView+WebCache加载一张图片。2:UIViewExt用于定位坐标很有用,可以直接拿到bottom,top,left,right.3:CustomCatagory,是个类目,里面有navigationBar和UINavigationController的两种系统版本下自定义na

2016-08-18 10:51:24 540

转载 GitHub上关于iOS的各种开源项目集合

github上关于iOS的各种开源项目集合(转).entry-headerUI下拉刷新EGOTableViewPullRefresh - 最早的下拉刷新控件。SVPullToRefresh - 下拉刷新控件。MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。

2016-08-18 10:36:47 3757

原创 iOS本地推送和远程推送详解

一、简介分为本地推送和远程推送2种。可以在应用没有打开甚至手机锁屏情况下给用户以提示。它们都需要注册,注册后系统会弹出提示框(如下图)提示用户是否同意,如果同意则正常使用;如果用户不同意则下次打开程序也不会弹出该提示框,需要用户到设置里面设置。一共有三种提示类型:UIUserNotificationTypeBadge:应用图标右上角的信息提示    UIUserNotifi

2016-08-18 10:03:13 359

转载 多线程GCD的详细讲解 任务和队列(串行队列,并发队列)

1.什么是GCD2.任务和队列执行任务的方式队列:串行队列,并行队列,全局队列,主队列//串行队列 同步执行任务 会在当前线程内执行  # 不一定是主线程//异步的方式 执行串行队列 会创建一个新的线程来执行任务//串行的队列都是按照顺序来执行。就是任务1 -> 任务2 -》任务3[objc

2016-08-16 14:34:12 514

转载 详解iOS中多线程app开发的GCD队列的使用

这篇文章主要介绍了详解iOS中多线程app开发的GCD队列的使用,代码基于传统的Objective-C,需要的朋友可以参考下GCD的基本使用一、主队列介绍主队列:是和主线程相关联的队列,主队列是GCD自带的一种特殊的串行队列,放在主队列中得任务,都会放到主线程中执行。提示:如果把任务放到主队列中进行处理,那么不论处理函数是异步的还是同步的都不会开

2016-08-16 13:18:33 322

原创 iOS中_(下划线)和self.的区别

1.首先通过self. 通过访问的方法的引用:包含了set和get方法。但是,通过下划线是获取自己的实例变量,不包含set和get的方法。2.self.是对属性的访问;而_(下划线)是对局部变量的访问。所有被声明为属性的成员,再ios5之前需要使用编译指令@synthesize 来告诉编译器帮助生成属性的getter和setter方法,之后这个指令可以不用认为的指定了,默认情况下编译器会帮

2016-08-15 10:52:27 2114

原创 CocoaPods版本升级遇到问题以及解决方案

控制器进入目录执行pod install:$ pod installAnalyzing dependencies[!] The version of CocoaPods used to generate the lockfile (0.39.0) is higher than the version of the current executable (0.35.0). Incompati

2016-08-12 09:36:13 4002

转载 iOS开发-自动布局篇:史上最牛的自动布局教学!

本文我们将提到:aotulayout(手码)VFLaotulayout(Xib)Masonry(第三方框架)本文Demo地址:https://github.com/JinqianChina/aotulayoutDemo.git一、AutoLayout介绍UI布局对于iOS开发者来说并不陌生,在iOS6之前,大家都是通过UI控件的Frame属性和Autoresizing Ma

2016-08-09 15:28:16 605

转载 浏览器的缓存机制详解

from: http://mangguo.org/browser-cache-mechanism-detailed/浏览器缓存浏览器缓存的知识是前端工程师必须要掌握的,因为这些知识直接影响到你的页面的用户体验,影响到你的页面的加载策略。接下来将要详细的讲述浏览器缓存的概 念和原理,新人要仔细阅读,甚至要多次反刍,缓存的知识除了和浏览器有关,还涉及到HTTP协议,所以这也是比

2016-08-08 12:30:44 205

原创 GitHub Top 100 简介(Objective-C)

主要对当前 GitHub 排名前 100 的项目做一个简单的简介, 方便初学者快速了解到当前 在 GitHub 的情况。项目名称项目信息1. AFNetworking作者是 NSHipster 的博主, iOS 开发界的大神级人物, 毕业于卡内基·梅隆大学, 开源了许多牛逼的项目, 这个便是其中之一, AFNetworking 采用 NSURLConne

2016-08-06 16:02:34 318

原创 GET请求和POST请求

HTTP 的常用方法在 HTTP/1.1 协议中,定义了 9 种发送 http 请求的方法GETPOSTHEADPUTDELETEOPTIONSTRACECONNECTPATCH(新引入)以上几种方法仅供参考了解,http 请求的方法里面该如何实现交由服务器处理,客户端只需要发送对应请求即可。在以后的开发中最常用的是 GET 和 POSTGET和PO

2016-08-06 11:13:31 5406 1

原创 如果JSON数据中有中文,输出Unicode编码,无法识别解决办法

NSLog+NSArray问题如果JSON数据中有中文,输出的是经过Unicode编码的内容,无法识别.解决定义NSArray和NSDictionary的分类,重写系统方法descriptionWithLocale,重写此方法不需要导入头文件.descriptionWithLocale,当NSLog输出数组或字典时,系统会自动调用这个方法.在descriptionW

2016-08-06 09:58:03 8663

原创 服务器返回的数据,用数据类型接收(int,NSNumber)?

NSNumber字典转模型时,关于数字的赋值的问题和解决办法.定义模型类时,当要保存字符串时,使用 NSString.// 当 messageId 为字符串的时候,使用 NSString 接收@property (nonatomic,copy) NSString *messageId;问题定义模型类时,当要保存数字时,使用 int.注意 : int类型的

2016-08-06 09:31:14 3516

原创 JSON解析_JSONKit

常见的 JSON 解析第三方框架JSONKit(最快)SBJsonTouchJSON说明 : 以上三个框架的性能依次降低!使用步骤下载框架 https://github.com/johnezang/JSONKit导入框架文件设置 MRC 标记,告诉编译器,编译 JSONKit.m 时不使用 ARCJSONKit反序列化核心代码id result = [[JSON

2016-08-06 08:32:54 296

原创 XML解析之DOM解析

DOM简介DOM : Document Object ModelDOM : 文档对象模型 (文档树模型)一次性把XML文件全部加载到内存,内存消耗大,适合读写比较小的XML文件.之前的SAX方式只能读取XML文件,但是DOM方式可以修改XML文件,包括添加删除修改节点.iOS系统默认不支持DOM解析,在iOS系统下解析DOM的话需要第三方框架.第三方框架 : GData/KissXML(X

2016-08-06 08:26:40 388

原创 XML解析之转模型

XML解析之转模型 准备模型类.h文件中的声明 @interface VideoModel : NSObject/// 视频编号 @property (nonatomic,copy) NSString *videoId; /// 视频名称 @property (nonatomic,copy) NSString *name; /// 视频长度 @property (nonatomic,c

2016-08-06 08:24:41 1411

原创 XML解析之SAX解析

SAX方式解析XML步骤创建XML文件解析器.遵守解析器的代理协议.启动解析器,开始解析.XML文件的解析是在代理方法中完成的.需要实现以下代理方法.1.开始解析`XML`文件.2.找开始节点(标签).3.找节点之间的内容.4.找结束节点.5.结束解析`XML`文件.6.监听`XML`文件是否解析出错.SAX方式解析XML实现1.发送网络请求,获取二

2016-08-06 08:13:19 212

原创 简单配置Apache服务器

配置apache服务器目的 : 搭建一个自己测试用的服务器.apache服务器是免费的.为什么选择 apache 服务器使用最广的 Web 服务器Mac自带,只需要修改几个配置就可以,简单,快捷可以支持文件上传下载和有些特殊的服务器功能,apache都能很好的支持 例如:HTTP协议下的PUT和DELETE 操作1.创建myWeb文件夹创建一个文件夹,内部放置网络访

2016-08-05 09:54:17 1045

原创 JSON反序列化解析

1.简单粗暴直接上代码----------------------------------#import "ViewController.h"#import "MessageModel.h"@interface ViewController ()@end@implementation ViewControlle

2016-08-05 08:22:58 383

原创 iOS之UIViewController执行返回操作并传递参数值的两种方式

举个例子,第一个page(即UIViewController)显示天气,需要对所在地进行设置,这就需要跳转到第二个page,选择好所在地之后,将所在地信息(即返回参数)传回第一个page。第一种:通过Delegate的Protocol1.新建PassValueDelegate.hCpp代码  #import     @protocol PassV

2016-07-28 23:20:13 693

原创 iOS中UIButton详解

这段代码动态的创建了一个UIButton,并且把相关常用的属性都列举了.希望对大家有用.  //这里创建一个圆角矩形的按钮UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];// 能够定义的button类型有以下6种,// typedef enum {// UIButtonTypeC

2016-07-28 23:12:42 264

原创 GitHub 上有哪些完整的 iOS-App 源码参考

1. Coding iOS 客户端Coding官方客户端. 笔者强烈推荐的值得学习的完整APP.GitHub - Coding/Coding-iOS: Coding iOS 客户端源代码2. OSCHINA 的 iPhone 客户端开源中国的iPhone客户端源码https://git.oschina.net/oschina/iphone-app3. Git@OSCGit@OSC i

2016-07-25 10:17:35 628

空空如也

空空如也

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

TA关注的人

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