自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Cookie和Session专题

一、cookie机制和session机制的区别*************************************************************************************具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于才服务器端保持状态的方案在客户端也需要保存

2014-08-21 10:59:54 444

转载 xcode 插件

古人云“工欲善其事必先利其器”,打造一个强大的开发环境,是立即提升自身战斗力的绝佳途径!以下是搜集的一些有力的XCode插件。 1.全能搜索家CodePilot 2.0你要找的是文件?是文件夹?是代码?Never Mind,CMD+SHIFT+X调出CodePilot,输入任何你想到搜的东西吧!想搜appFinishLaunchingWithOptions?忘记咋拼了?没关系强大的代码

2014-08-20 18:02:03 1206

转载 NSObject详解

NSObject Class ReferenceInitializing a Class[plain] view plaincopy1.+ (void)initialize  一个类的实例在使用前需要先初始化.initialize 在一个类中只被调用一次。如果你想为一个类或类的Categories执行独立的初始化,你可以实

2014-08-20 15:50:07 5642

转载 CocoaPods的使用

1. 使用CocoaPods的好处2. CocoaPods的使用3. CocoaPods的更新4. 注意事项/常见问题5. 参考文献前言:CocoaPods固然有诸多的好处,但工具毕竟只是一个工具,再好用的工具都需要使用的人能够灵活的运用它。比如,当你需要深度定制某第三方库,该做的事情一点也不能少,这类库就不要用CocoaPods来管理了。1. 使用Co

2014-08-20 10:56:30 1292

转载 Block面试题解析

Block是iOS4.0+ 和Mac OS X 10.6+ 引进的对C语言的扩展,用来实现匿名函数的特性。他在是一个仿对象,也可以说是一种特殊的对象,他有三种类型:1.NSGlobalBlock:类似函数,位于text段2.NSStackBlock:位于栈内存,函数返回后Block将无效;3.NSMallocBlock:位于堆内存。第一种类型:说

2014-08-20 10:46:09 3315 1

转载 正确使用Block避免Cycle Retain和Crash

Block简介Block作为C语言的扩展,并不是高新技术,和其他语言的闭包或lambda表达式是一回事。需要注意的是由于Objective-C在iOS中不支持GC机制,使用Block必须自己管理内存,而内存管理正是使用Block坑最多的地方,错误的内存管理 要么导致return cycle内存泄漏要么内存被提前释放导致crash。 Block的使用很像函数指针,不过与函数最大的不同是:

2014-08-20 10:35:36 3691

转载 忽略performSelector警告

忽略performSelector警告#pragma clang diagnostic push#pragma clang diagnostic ignored "-Warc-performSelector-leaks"     [viewController performSelector:finishMethod withObject:request];#pra

2014-08-20 10:08:25 5877

转载 IOS中的block和retain cycle (经典)

retain cycle 的产生说到retain cycle,首先要提一下Objective-C的内存管理机制。作为C语言的超集,Objective-C延续了C语言中手动管理内存的方式,但是区别于C++的极其非人道的内存管理,Objective-C提出了一些机制来减少内存管理的难度。 比如:内存计数。在Objective-C中,凡是继承自NSObject的类都提供了两种方法

2014-08-20 10:01:21 607

转载 用 SQLite 和 FMDB 替代 Core Data

凭良心讲,我不能告诉你不去使用 Core Data。它不错,而且也在变得更好,并且它被很多其他 Cocoa 开发者所理解,当有新人加入你的团队或者需要别人接手你的 app 的时候,这点很重要。更重要的是,不值得花时间和精力去写自己的系统去代替它。使用 Core Data 吧。真的。为什么我不使用Core DataMike Ash 写到:就个人而言,我不是个狂热粉

2014-08-19 12:56:46 3789

转载 Core data/MagicalRecord Concurrency Reseach

Core data research每个线程必须有自己的NSManagedObjectContextNSManagedObjects不是线程安全的,但是NSManagedObjectIDs是线程安全的如果在background保存,则需要通过core data Notification将changes同步到其他contexts参考:Concurrency with Co

2014-08-18 23:49:12 2777

转载 Using CoreData with MagicalRecord

So I have used CoreData before in my iOS applications, but until now I’ve always sticked to Apple’s CoreData Template Project. Yesterday I came across the MagicalRecord project on GitHub which promise

2014-08-18 23:38:59 1182

转载 iOS多线程的初步研究(十)-- dispatch同步

GCD提供两种方式支持dispatch队列同步,即dispatch组和信号量。一、dispatch组(dispatch group)1. 创建dispatch组dispatch_group_t group = dispatch_group_create(); 2. 启动dispatch队列中的block关联到group中dispatch_group_asyn

2014-08-18 18:17:36 677

转载 OS多线程的初步研究(九)-- dispatch源

dispatch源(dispatch source)和RunLoop源概念上有些类似的地方,而且使用起来更简单。要很好地理解dispatch源,其实把它看成一种特别的生产消费模式。dispatch源好比生产的数据,当有新数据时,会自动在dispatch指定的队列(即消费队列)上运行相应地block,生产和消费同步是dispatch源会自动管理的。dispatch源的使用基本为以下步骤:

2014-08-18 18:17:06 4250

转载 iOS多线程的初步研究(八)-- dispatch队列

GCD编程的核心就是dispatch队列,dispatch block的执行最终都会放进某个队列中去进行,它类似NSOperationQueue但更复杂也更强大,并且可以嵌套使用。所以说,结合block实现的GCD,把函数闭包(Closure)的特性发挥得淋漓尽致。 dispatch队列的生成可以有这几种方式:1. dispatch_queue_t queue = disp

2014-08-18 18:12:59 658

转载 iOS多线程的初步研究(七)-- dispatch对象

谈起iOS的dispatch(正式称谓是Grand Central Dispatch或GCD),不得不说这又是iOS(包括MacOSX)平台的创新,优缺点这里不讨论,只有当你使用时才能真正体会到。我们说dispatch函数的主要目的是实现多任务并发代码,那么要理解dispatch函数,先来了解dispatch对象的定义。 dispatch对象类型的部分定义,主要使用C语言的宏定义:

2014-08-18 18:09:13 640

转载 iOS多线程的初步研究(五)-- 如何让NSURLConnection在子线程中运行

可以有两个办法让NSURLConnection在子线程中运行,即将NSURLConnection加入到run loop或者NSOperationQueue中去运行。前面提到可以将NSTimer手动加入NSRunLoop,Cocoa库也为其它一些类提供了可以手动加入NSRunLoop的方法,这些类有NSPort、NSStream、NSURLConnection、NSNetServices,方

2014-08-18 18:06:04 3778

转载 iOS多线程的初步研究(六)-- NSOperation

iOS平台提供更高级的并发(异步)调用接口,让你可以集中精力去设计需完成的任务代码,避免去写与程序逻辑无关的线程生成、运行等管理代码。当然实质上是这些接口隐含生成线程和管理线程的运行,从而更加简洁地实现多线程。下面先来研究NSOperation和NSOperationQueue类的使用。NSOperation实质是封装了需要并发运行的代码,一些主要接口和NSThread基本相同,可以看做没

2014-08-18 18:04:50 3876

转载 iOS多线程的初步研究(四)-- NSTimer

理解run loop后,才能彻底理解NSTimer的实现原理,也就是说NSTimer实际上依赖run loop实现的。先看看NSTimer的两个常用方法:+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userI

2014-08-18 17:58:19 709

转载 iOS多线程的初步研究(二)-- 锁

谈到线程同步,一般指如何对线程间共享数据的同步读写,如何避免混乱的读写结果。一个基本的解决办法就是使用锁(LOCK)。iOS提供多种同步锁的类和方法,这里介绍下基本用法。 1. NSLock:最基本的同步锁,使用lock来获得锁,unlock释放锁。如果其它线程已经使用lock,这时lock方法会阻塞当前线程,直到其它线程调用unlock释放锁为止。NSLock锁一般用于简

2014-08-18 16:28:28 5136

转载 iOS多线程的初步研究(一)

目录[-]iOS多线程的初步研究(一)一、显式调用二、隐式调用通过NSObject的Category方法调用:三、NSThread的其它一些常用的方法四、一些非线程调用(NSObject的Category方法)五、线程执行顺序iOS多线程的初步研究(一)===来源: http://www.cnblogs.com/sunfrog/p

2014-08-18 16:23:16 889

转载 dispatch_group_enter、 dispatch_group_leave和dispatch_group_wait来实现同步

dispatch_group_t group = dispatch_group_create();MyCoreDataObject *coreDataObject;dispatch_group_enter(group);AFHTTPRequestOperation *operation1 = [[AFHTTPRequestOperation alloc] initWithRequest:

2014-08-17 21:12:40 7280

转载 kvdb

Warning: this package is not actively supported.You may prefer to use something newer like Couchbase Lite, which is excellent and is widely supported. This package was made long before NoSQL w

2014-08-15 20:14:45 1071

转载 REACTIVECOCOA - IOS开发的新框架

本文为InfoQ中文站特供稿件,首发地址为:文章链接。如需转载,请与InfoQ中文站联系。什么是ReactiveCocoaReactiveCocoa(其简称为RAC)是由Github 开源的一个应用于iOS和OS X开发的新框架。RAC具有函数式编程和响应式编程的特性。它主要吸取了.Net的 Reactive Extensions的设计和实现。ReactiveCoc

2014-08-12 18:55:01 1188

转载 Runtime-动态创建类添加属性和方法

- (void)createClass  {      Class MyClass = objc_allocateClassPair([NSObject class], "myclass", 0);      //添加一个NSString的变量,第四个参数是对其方式,第五个参数是参数类型      if (class_addIvar(MyClass, "itest", sizeof

2014-08-12 09:32:51 12086

转载 ios动态创建类Class

【Objective-C Runtime动态加载】---动态创建类Class动态创建类Class,动态添加Class成员变量与成员函数,动态变量赋值与取值,动态函数调用等方法a.使用objc_allocateClassPair创建一个类Class    const char * className = "Calculator";    Class kclass = objc_g

2014-08-12 08:57:56 12265

转载 Runtime(四)

用C代替OC:#import #import #import extern int UIApplicationMain (int argc,char *argv[],void *principalClassName,void *delegateClassName);struct Rect {  

2014-08-09 11:20:12 777

转载 Runtime(三)

11、系统类的方法实现部分替换- (void) methodExchange {    Method m1 = class_getInstanceMethod([NSStringclass],@selector(lowercaseString));    Method m2 = class_getInstanceMethod([NSStringclass],@sel

2014-08-09 11:16:12 676

转载 Runtime(二)

一些公用类:@interface ClassCustomClass :NSObject{    NSString *varTest1;    NSString *varTest2;    NSString *varTest3;}@property (nonatomic,assign)NSString *varTest1;@prop

2014-08-09 11:11:59 698

转载 Runtime(一)

一些公用类:@interface CustomClass : NSObject- (void) fun1;@end@implementation CustomClass- (void) fun1{    NSLog(@"fun1");}@end@interface TestClass :

2014-08-09 10:02:21 820

转载 第14条:理解“类对象”的用意

《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法》第2章对象、消息、运行期,本章讲解运行期环境中各个部分协同工作的原理之后,你的开发水平将会进一步提升。本节为大家介绍“类对象”的用意。第14条:理解“类对象”的用意Objective-C实际上是一门极其动态的语言。第11条讲解了运行期系统如何查找并调用某方法的实现代码,

2014-08-09 09:31:19 899

转载 第13条:用“方法调配技术”调试“黑盒方法”

《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法》第2章对象、消息、运行期,本章讲解运行期环境中各个部分协同工作的原理之后,你的开发水平将会进一步提升。本节为大家介绍用“方法调配技术”调试“黑盒方法”。第13条:用“方法调配技术”调试“黑盒方法”第11条中解释过:Objective-C对象收到消息之后,究竟会调用何种方

2014-08-09 09:30:34 987

转载 第12条:理解消息转发机制(3)

《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法》第2章对象、消息、运行期,本章讲解运行期环境中各个部分协同工作的原理之后,你的开发水平将会进一步提升。本节为大家介绍消息转发机制。第12条:理解消息转发机制(3)本例的关键在于resolveInstanceMethod:方法的实现代码: + (BOOL)resolveI

2014-08-09 09:29:37 1087

转载 第12条:理解消息转发机制(2)

《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法》第2章对象、消息、运行期,本章讲解运行期环境中各个部分协同工作的原理之后,你的开发水平将会进一步提升。本节为大家介绍消息转发机制。第12条:理解消息转发机制(2)完整的消息转发如果转发算法已经来到这一步的话,那么唯一能做的就是启用完整的消息转发机制了。首先创建NSInv

2014-08-09 09:28:48 1064

转载 第12条:理解消息转发机制(1)

《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法》第2章对象、消息、运行期,本章讲解运行期环境中各个部分协同工作的原理之后,你的开发水平将会进一步提升。本节为大家介绍消息转发机制。第12条:理解消息转发机制(1)第11条讲解了对象的消息传递机制,并强调了其重要性。第12条则要讲解另外一个重要的问题,就是对象在收到无法解

2014-08-09 09:28:03 779

转载 NSOperationQueue和NSOperation

最近一直在看开源库AFNetworking,很值得学习,在看的过程中发现自己在HTTP协议方面很薄弱,有时间一定要好好的看看,感觉很有用。AFNetworking库中是主要使用NSOperationQueue和NSOperation两个类来处理网络request,发现在其中有些概念自己以前理解有误,所以决定写一篇好好总结一下,主要摘自苹果官网文档。1.NSOperationQueue

2014-08-05 17:19:34 9345

转载 UIApplicationWillTerminateNotification ios4 above not working

In short, unless you have UIApplicationExitsOnSuspend in your Info.plist set to YES, in iOS4 and above there is no guarantee that applicationWillTerminate: will ever get called

2014-08-04 17:12:24 1152

转载 objc runtime 动态增加属性

objective-c中,有类别可以在不修改源码的基础上增加方法;近排在看别人的开源代码时,发现还可以动态增加属性。而且是在运行时,太牛B了。使用运行时库,必须要先引入 objc/runtime.h可以使用的函数如下:OBJC_EXPORT void objc_setAssociatedObject(id object, const void *key, id value,

2014-08-01 11:28:02 2183

空空如也

空空如也

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

TA关注的人

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