自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 OC与JS交互(JavaScriptCore框架入门介绍)

前阵子,Apple正式发布了新的iOS 7系统,最大最直观的改变在于界面变得小清新范了,我也提到《iOS,你真的越来越像Android了》。不过对于移动开发者来说,除了要适应Xcode 5,最应该关注的还是iOS 7在开发接口的上的变化。概览Apple提供的官方文档《What’s New in iOS》,最最让我欣喜的是iOS 7中加入了JavaScriptCore框架。该框架让Objecti

2016-04-27 11:50:36 3467

原创 进程和线程关系及区别

1.定义进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.2.

2015-09-17 20:20:28 802

原创 SDWebImage使用详解

这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。使用示范的代码:UITableView使用UIImageView+WebCache类(基本应用,UIImageView的一个category)前提#import导入UIImageView+WebCache.h文件,然后在tableview的cellFor

2015-08-30 16:21:28 1031

原创 Objective-C isa 指针 与 runtime 机制

一.isa指针要认识什么是isa指针,我们得先明确一点:在Objective-C中,任何类的定义都是对象。类和类的实例(对象)没有任何本质上的区别。任何对象都有isa指针。那么什么是类呢?在xcode中用快捷键Shift+Cmd+O 打开文件objc.h 能看到类的定义:可以看出:Class 是一个 objc_class 结构类型的指针, id是

2015-08-30 09:36:00 1638 1

原创 Objective-C之run loop详解

Objective-C之run loop详解 不知道大家有没有想过这个问题,一个应用开始运行以后放在那里,如果不对它进行任何操作,这个应用就像静止了一样,不会自发的有任何动作发生,但是如果我们点击界面上的一个按钮,这个时候就会有对应的按钮响应事件发生。给我们的感觉就像应用一直处于随时待命的状态,在没人操作的时候它一直在休息,在让它干活的时候,它就能立刻响应。其实,这就是run lo

2015-08-27 15:02:40 3528 3

原创 网路总结02-ASI和AFN

上一篇讲解了HTTP协议和NSURLConnection    网址:http://blog.csdn.net/hepburn_/article/details/47150589现在讲讲ASI和AFN:ASI:AFN:ASI网络状态监控:AFN网络状态监控:ASI和AFN的区别:4,AF

2015-07-30 17:38:42 1049

原创 网路总结01-HTTP协议和NSURLConnection

2015-07-30 15:26:09 1206 1

原创 TCP/IP,Http,Socket,XMPP的区别

网络由下往上分为  物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。  通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,  三者从本质上来说没有可比性,  socket则是对TCP/IP协议的封装和应用(程序员层面上)。  也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,  而HTTP是应用层

2015-07-30 10:24:06 2301 1

原创 NSURLCache、网络监测状态

有时候,对同一个URL请求多次,返回的数据可能一样的;比如服务器上的某张图片,无论下载多少次,返回的数据都是一样的,但是这些情况会造成以下问题:1,用户流量的浪费;2,程序响应速度不够快为了提高程序的响应速度,可以考虑使用缓存(内存缓存\硬盘缓存)硬盘缓存也是沙盒缓存;第一次请求数据:1,客户端优先会去内存缓存中检测有无缓存;

2015-07-29 15:18:55 1185 1

原创 网络编程

一.确认网络环境3G/WIFI      1. 添加源文件和framework          开发Web等网络应用程序的时候,需要确认网络环境,连接情况等信息。如果没有处理它们,是不会通过Apple的审查的。     Apple 的 例程 Reachability 中介绍了取得/检测网络状态的方法。要在应用程序程序中使用Reachability,首先要完成如下两部:  

2015-07-28 22:36:04 1135

原创 POST数据加密

数据加密:GET请求和POST请求其中之一的区别:GET请求参数直接加在请求路径后面,很不安全;所以一定要使用POST请求提交用户的隐私数据1,GET请求的所有参数都是直接暴露在URL中2,请求的URL一般会记录在服务器的访问日志中3,服务器的访问日志是黑客攻击的重点对象之一仅仅用POST请求提交用户的隐私数据,还是不能完全解

2015-07-28 15:47:21 14389 3

原创 XML/JSON解析

JSON:什么是JSON:1,json是一种轻量级的数据格式,一般用于数据交互;2,服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外)JSON的格式很像OC中的字典和数组{“name” : "jack", "age" : 10}{"names" : ["jack","rose","jim"]}标准JSON格式的注意点

2015-07-28 15:34:23 1166

原创 网络请求之GET、POST请求

网络请求-GET请求:1,NSURL: 请求地址;2,NSURLRequest :一个NSURLRequest对象就代表一个请求,它包含的信息有:1)一个NSURL对象GET请求,不需要写请求头、请求体,只要告诉请求路径和请求参数就可以了。2)请求方法3)请求超时3,NSMutableURLRequest : NSURLR

2015-07-28 10:27:18 1430

原创 HTTP协议

HTTP一、URL1,什么是URL1)URL的全称是Uinform Resource Locator(统一资源定位符)2)通过1个URL,能找到互联网上唯一的1个资源3)URL就是资源的地址、位置,互联网上的每个资源都有一个唯一的URL2,URL的基本格式 =协议:// 主机地址 /路径http://www.baidu.com/ios/i

2015-07-27 16:30:11 1136

原创 NSOperation - 02

NSOperationQueue作用:NSOperation可以调用start方法来执行任务,但默认是同步执行的;如果将NSOperation添加到NSOperationQueue中,系统会自动异步执行NSOperation中的操作;添加操作到NSOperationQueue中:- (void)addOperation:(NSOperation *)p;- (void)

2015-07-27 09:59:32 881

原创 NSOperation - 01

NSOperation在介绍NSOperation之前,我们来看看IOS中多线程的实现方案有哪些?都有什么特点?1,pthread 基于C语言,线程的生命周期是由程序员管理的;(1)一套通用的多线程API(2)适用于Unix\Linux\Windows(3)跨平台、可移植(4)使用难度大2,NSThread 基于OC语言,线程生命周期也是

2015-07-26 17:20:12 864

原创 GCD队列与任务

GCD队列与任务GCD的基本思想:GCD的基本思想就是将操作a放在队列a中去执行:(1)操作使用blocks定义(2)队列负责调度任务执行所在的线程以及具体的执行时间(3)队列的特点是先进先出(FIFO)的,新添加至队列的操作都会排在队尾提示:GCD的函数都是以dispatch(分派、调度)开头的

2015-07-25 09:17:46 1233

原创 KVC与KVO

一、简介KVC/KVO是观察者模式的一种实现,在Cocoa中是以被万物之源NSObject类实现的NSKeyValueCoding/NSKeyValueObserving非正式协议的形式被定义为基础框架的一部分。从协议的角度来说,KVC/KVO本质上是定义了一套让我们去遵守和实现的方法。当然,KVC/KVO实现的根本是Objective-C的动态性和runtime,这在后文的原理部分会有详

2015-07-23 11:22:25 1003

原创 UIScrollView极限优化:两个UIImageView循环利用

iOS开发中,UIScrollView在大部分情况下,用for循环往里面直接塞UIImageView就OK了。但是如果需要展示的图片非常多,比如十张,几十张,甚至上百张,直接往UIScrollView里面塞上百的UIImageView肯定是行不通的。明显需要优化。UIScrollView在不滚动的时候,只会有一张图出现在视野中,滚动的时候同一时刻也最多只会有两张图出现在视野中。如图所示。既

2015-07-23 10:47:22 992

原创 OC中Autorelease Pool实现原理与autorelease何时被释放

autorelease 基本用法1,对象执行autorelease方法时会将对象添加到自动释放池中2,当自动释放池销毁时自动释放池中所有对象作release操作3,对象执行autorelease方法后自身引用计数器不会改变,而且会返回对象本身autoreleased 对象什么时候释放autorelease 本质上就是延迟调用 release ,那 autoreleased

2015-07-23 10:39:53 4691

原创 ARC与MRC

Objective-c中提供了两种内存管理机制MRC(MannulReferenceCounting)和ARC(Automatic ReferenceCounting),分别提供对内存的手动和自动管理,来满足不同的需求。注意的是Xcode4.1及其以前版本没有ARC,需要理解MRC,但实际使用时强推ARC。1. Objective-c语言中的MRC(MannulReferenc

2015-07-22 23:21:03 869

原创 runtime-02-Swizzle

上一篇我们讲过runtime中可以交换两个方法的具体实现;利用swizzie就可以实现;什么意思呢?废话不多说,直接上代码。呢,废话不多说,直接上代码。在开发中,图片会提供IOS7版本的,IOS8版本的,但是我们不可能每加载一个图片就去判断是不是IOS7版本还是IOS8版本,这样,我们就可以写一个UIImage类的扩展,使得我们直接调用一个方法,不管是什么IOS7还是IOS8让方法去判断,

2015-07-22 23:10:38 868 1

原创 runtime-01

Runtime实现的机制:运行时机制它是一套C语言库;实际上我们编写的所有OC代码,最终都是转成了runtime库的东西,比如类转成了runtime库里的结构体等数据类型,方法转成了runtime库里面的C语言函数,平时调方法都是转成了objc_msgSend函数(所以说OC有个消息发送机制);因此,可以说runtime是OC的底层实现,是OC的幕后执行者;举例:runtime

2015-07-22 22:24:08 860

原创 优化原理之UITableView - 循环利用

UITableView-循环利用,优化原理当我们在项目中用到UITableView时,如果没有做优化处理,只是简单的实现功能代码。当我们有上百条tableviewcell的时候,我们滑动的非常快的时候会非常消耗内存,当然苹果公司不会让我们这样干,苹果公司会在程序启动加载页面的时候。只开辟出现在页面上的tableviewcell,剩下的就需要你滑动到该条才加载到内存中去,划出的UITablevi

2015-07-22 14:58:29 1062

原创 IOS笔记-protocol、category和继承

利用继承,多态是一个很好的保持“对扩展开放,对更改封闭”(OCP)的办法,也是最常见的一种方法。OC中还有另外两种语法来支持OCP:protocol和category。Protocol只能定义一套接口,而不能提供实现。Category可以为类提供额外的接口和实现。那么三者到底在使用上有什么本质的区别呢?在我看来,protocol的作用是为一些列类仅仅提供一套公用的接口,而完全没有办法也没有可能

2015-07-22 11:33:58 1282

原创 类别与类扩展//类别与继承

类别1,在不需要继承的情况下可以扩展类的功能;2,无法向类中添加新的实例变量,类别没有位置容纳实例变量;(注意)如果非要在类别中加成员变量,可以使用@dynamic来弥补这种不足;3,名称冲突:当类别中的方法与原始类方法名称冲突,类别具有更高的优先级。(补充:在苹果官方文档中的描述是,当方法名重名的时候,在运行的时候不知道会调用哪个方法。实际上,这个应该是有规则可循的。我建

2015-07-22 10:56:01 1491

原创 阿里巴巴IOS开发内推面试

这是我的第一篇博客,但并不是我的第一次面试。很久以前就想开始我的博客之旅,但是一直给自己借口,没有什么好写的,下次可以一起写,会写的更好,更精彩。现在看来,并不是如此,有些人认为博客是展示自己才华的地方;有些人认为博客是给自己一个交代、一个寄托;有些人认为博客是一个可以和大家分享的平台,可我觉得这里是见证自己进步和成长的地方。步入正题了,现在讲讲我刚刚的面试题吧;

2015-07-21 20:51:15 2452

空空如也

空空如也

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

TA关注的人

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