
IOS
jaceson
这个作者很懒,什么都没留下…
展开
-
[IOS] crash reports的种类
一、跟IOS有关的:基本上这类crash就是违反IOS规范而bei原创 2014-05-05 09:47:44 · 479 阅读 · 0 评论 -
设计模式之原型模式
定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。类型:创建类模式原型模式主要用于对象的复制,它的核心就是原型类。原型模式是一种比较简单的模式,非常容易理解,实现一个接口,重写一个方法即完成了原型模式。在实际应用中,原型模式很少简单出现,经常与其他模式混用,他的原型类也常用抽象类来代替。实现代码:class Prototype implements Cloneab原创 2013-12-16 17:51:32 · 174 阅读 · 0 评论 -
NSKeyedArchiver类
使用NSKeyedArchiver类创建带键的档案,在带键的档案中,每个归档的字段都有一个名称。归档某个对象的时候,会为它提供一个名臣,即键。从归档中检索该对象的时候,是根据这个键来检索它的,这样,可以按照任意的顺序将对象写入归档并进行检索。另外,如果向类添加了新的实例变量或删除了实例变量,程序也可以进行处理。NSKeyedArchiver类中的archiveRootObject:toFile原创 2013-12-16 15:18:37 · 146 阅读 · 0 评论 -
IOS之copy和mutableCopy
在IOS中并不是所有的对象都支持copy,mutablecopy,遵守NSCopying协议的类可以发送copy消息,遵守NSMutableCopying协议的类才可以发送mutableCopy消息。加入发送了一个没有遵守上述两协议而发送copu或者mutableCopy就会发生异常。但是默认的IOS类并没有遵守这两个协议。如果想自定义一下copu,那么就必须遵守NSCopying,并且实现cop原创 2013-12-16 15:07:51 · 181 阅读 · 0 评论 -
IOS之NSNull
在关键字下如果属性是NSNull表明没有这个属性,没有数值的话表明不知道是否有这个属性。原创 2013-12-15 17:57:06 · 177 阅读 · 0 评论 -
IOS之集合对象
set是一组单值对象的集合,有可变和不可变,操作包括:搜索、添加、删除集合中的成员(仅用于可变集合)、比较两个集合,计算两个集合的交集和并集等。原创 2013-12-15 17:48:32 · 184 阅读 · 0 评论 -
IOS中方法和选择器区别
selector是一个方法的名字,method是一个组合体,包含了名字和实现。原创 2013-12-15 12:34:51 · 290 阅读 · 0 评论 -
IOS中frame和bounds的区别
frame指的是,在该view在父view坐标系统中得位置和大小(参照点是父亲的坐标系统)bounds指的是,该view在本身坐标系统中的位置和大小。(参照点是本身的坐标系统)原创 2013-12-15 12:33:39 · 186 阅读 · 0 评论 -
Objective-C Class Dump
class dump是一个命令行工具,用来监测存储在Mach-O二进制文件处理的Objective-C运行时信息,它为类(class),分类(category)和协议(protocol)生成声明信息。这些信息与otool -ov命令提供的信息是一样的,但表示得更像正常的Objective-C的声明,所以它更紧凑,更易读为什么要使用class-dump对于好奇的人,是一个好工具。可以看到闭源原创 2013-12-29 16:34:07 · 156 阅读 · 0 评论 -
IOS私有API了解
IOS的API分为四种:Published API(公开的API)(或者Document API)还有两类:私有API:Private API和未公开的API:UnPublished API(或者undocument API)私有API是指放在PrivateFrameworks框架中的API,未公开的API是指虽然放在frameworks框架中,但是却没有在苹果的官方文档中使用说明、代原创 2013-12-29 15:34:12 · 176 阅读 · 0 评论 -
IOS之引用计数
概念:创建对象时,将它的引用计数设置为1,每一次必须保持该对象时,就发送一条retain消息,使其引用计数加1.不再需要对象时,可以通过发送release消息,使对象的引用计数减1。当引用计数为0的时候,系统就会释放它的内存,通过向对象发送dealloc消息。通过向对象发送retainCount消息可以获得这个对象的引用计数,返回的是NSUInterfer整数。只要对象的引用计数不为0,系原创 2013-12-15 18:35:44 · 225 阅读 · 0 评论 -
IOS之枚举
NSEnumerator用来描述这种集合迭代器运算的方法:用想使用NSNumerator,需要通过objectEnumerator向数组请求枚举器原创 2013-12-15 15:25:25 · 171 阅读 · 0 评论 -
IOS中YES和NO
Object_C中得nil相当于NULL。Object_C中的YES和NO相当于true和false。Obect_C提供了BOOL类型,但这个BOOL类型和C++里的并不一样:在C++里一切非0值的东西都为true,而为0值的为false。但是Object_C里1为true并被宏定义为YES,0为false被宏定义为NO。原创 2013-12-15 13:18:39 · 281 阅读 · 0 评论 -
IOS中有关协议的注意事项
1、如果一个类遵守某项协议,那么它的子类也遵守该协议2、协议不引用任何类,它使无类的。任何类都可以遵守某项协议。3、通过在类型名称之后的尖括号中添加协议名称,可以借助编译器的帮助来检查变量的一致性4、如果这个变量保存的对象遵守多项协议,则可以列出多项协议5、定义一项协议时,可以扩展现有协议的定义。6、分类也可以采用一项协议原创 2013-12-15 19:43:29 · 190 阅读 · 0 评论 -
IOS之解码方法和编码方法
按照NSCoding协议,在类定义中添加编码方法encodeWithCoder:方法和解码方法initWithCoder:方法实现的。对于基本objective-C类(NSString、NSArray、NSDictionary、NSSet、NSDate、NSNumber、NSData)使用encodeObject:forKey:编码方法和decodeObject:forKey解码方法。原创 2013-12-16 15:21:42 · 239 阅读 · 0 评论 -
3194错误1013错误等iPhone越狱恢复固件错误解决方法
我们经常会在刷机的时候遇到各式各样的错误,如:3194错误、1031错误、160X错误等等,这些错误时常让很多椒友抓狂。今天小编这篇教程就是为了解决大家这个麻烦,同时也希望大家看完后,有所帮助。iOS系统错误集合:iTunes 中的警告信息可能还包括(但不限于)以下编号之一:2、4、5、6、9、13、14、-18、19、20、21、23、28、29、-48、-50、 1002、1004、1原创 2014-01-02 13:54:16 · 434 阅读 · 0 评论 -
IOS之instancetype和id的区别
1、instancetype不可以跟id那样,作为参数进行传递,只可以作为方法的返回值2、当一个类返回相同类的实例使可以使用instancetype原创 2014-02-08 17:13:42 · 203 阅读 · 0 评论 -
KVC/KVO实现原理
键值编码和键值观察使根据isa-swizzling技术来实现的,主要依据runtime的动态能力。当某个类的对象第一次被观察时,系统就会在运行期间冬天地创建该类的一个派生类,在这个派生类中重写基类中任何被观察属性的setter方法。派生类在被重写的setter方法实现真正的通知机制。基于设置属性会调用setter方法,而通过重写就获得了kvo需要的通知机制。当然前提是要通过遵循KVO的属性设置原创 2014-01-19 21:56:36 · 175 阅读 · 0 评论 -
IOS中动态方法决议
objective-c提供了一种名为动态方法决议的手段,使得我们可以在运行时动态地为一个selector提供实现。我们只要实现+resolveInstanceMethod:和+resolveClassMethod:方法,并在其中为指定的selector提供实现即可(通过调用运行时函数class_addMethod来添加)。这连个方法都是NSObject中的类方法,其原型为:+ (BOOL)re原创 2014-01-19 11:09:36 · 190 阅读 · 0 评论 -
NSNumber和NSValue对基础数据类型的对象化封装
由于Objective-C中常用的数据容器,如NSArray,NSDictionary等,只能处理Objective-C中的对象级别的数据类型,对于C中的很多数据类型,如int,float等,无法直接处理,针对这个问题,Objective-C提供了两种存储数据的对象NSNumber和NSValue,能将C中的基本数据类型,包括数值型和结构体型的数据转化成Objective-C可以处理的对象。N原创 2014-01-19 20:44:57 · 229 阅读 · 0 评论 -
NSDictionary中objectForKey和valueForKey
objectForKey返回指定key的value,若没有这个key返回nilvalueForKey同样是返回指定key的value一般来说key可以是任意字符串组合,如果key不是以@符号开头,这时候valueForKey:等同于objectForKey:,如果以@开头,去掉key里的@然后用剩下部分作为key执行[super valueForKey:]。NSDictionary *原创 2014-01-19 11:32:48 · 182 阅读 · 0 评论 -
IOS中关于多继承
首先,object-c不能够多继承,那么有没有其他方式替代?有,一种是伪继承,另一种是@protocol委托方式来实现1、伪继承尽管在object-c中不再提供多继承,但它提供了另外一种解决方案,使对象可以响应在其他类中实现的消息,这种方案叫做消息转发,它可以使一个类响应另外一个类中实现的消息在一般情况下,发送一个无法识别的消息会产生一个运行时的错误,导致应用程序崩溃,但是注意,在崩溃原创 2014-01-18 17:54:18 · 208 阅读 · 0 评论 -
id和NSObject *的区别和联系
在IOS的SDK头文件中,能看到一些定义,在objc.h中,可以看到id的定义如下typedef struct objc_class *Classtypedef struct objc_class{Class isa;}*id;在NSObject.h中,可以看到NSObject类的定义如下@interface NSObject{Class isa}+ (原创 2014-01-18 17:05:29 · 184 阅读 · 0 评论 -
frame,bounds,center三者的含义
1、frame属性是相对于父容器的定位坐标2、bounds属性针对于自己,指明大小边框,默认点为(0, 0),而宽和高与frame宽和高相等3、center属性是针对与frame属性的中心点坐标4、当frame变化时,bounds和center相应变化5、当bounds变化时,frame会根据新bounds的宽和高,在不改变center的情况下,进行重新设定6、center永远原创 2014-01-14 15:02:37 · 165 阅读 · 0 评论 -
IOS做消息推送 PHP做服务器端
http://zxs19861202.iteye.com/blog/1532460原创 2013-12-24 17:22:47 · 157 阅读 · 0 评论 -
ARC和非ARC 之间的转换方法
1,选择项目中的Targets,选中你所要操作的Target,2,选Build Phases,在其中Complie Sources中选择需要ARC的文件双击, 并在输入框中输入:-fobjc-arc,如果不要ARC则输入:-fno-objc-arc原创 2014-01-07 16:57:44 · 169 阅读 · 0 评论 -
如何调用父view的controller里面的方法
答案如下:[[self superview ].nextResponder method];[[[self superview ] nextResponder] method];[self.nextResponder method];上面的都可以,看情况使用,使用的时候最好判断一下。官方解释UIView implements this method by ret原创 2013-12-23 10:25:18 · 158 阅读 · 0 评论 -
当一个子view需要接受点击事件,而父view也需要接受点击事件,如何做?
当然直接调用mysubview.superView也可,但有时子view是不一定知道有这个特定的父view存在的,如动态加子view。所里这里就可以用到消息响应链技术。让子view接受到这些事件后,同时把这些事件继续向上传,会一直传到UIAppllication为止。而在传得过程中,如果子view接收了这些事件,那么事件会自然终止,现在可以做的是同时让子view接收事件,而且还让事件不终止原创 2013-12-23 10:50:21 · 266 阅读 · 0 评论 -
notification是同步还是异步
同步。可以写个测试方法,调用完通知处理后再执行其他操作,所以不能处理太费时的操作原创 2013-12-21 11:32:51 · 276 阅读 · 0 评论 -
IOS之初始化函数的规则
1、若不需要为自己的类创建初始化函数方法,只需要alloc方法将内存清0的默认行为,不需要担心init方法2、若构造一个初始化函数,则一定要再自己的初始化函数中调用超类的指定的初始化函数3、若初始化函数不止一个,则需要选定一个指定的初始化函数,被选定的方法应该调用超类的指定的初始化函数。原创 2013-12-15 18:57:28 · 176 阅读 · 0 评论 -
IOS中id类型
Id类型已经被预定义为指针类型,所以不需要加一个*号无论在哪里,对象总是携带它的isa的保护成员(可以用来确定对象所属的类),所以即使将它存储在id类型的通用对象变量中,也总是可以确定它的类。原创 2013-12-15 13:42:50 · 219 阅读 · 0 评论 -
IOS之浅复制和深复制
1、浅层复制只复制指向对象的指针,而不复制引用对象本身。对于浅复制来说,2、深层复制复制引用对象本身。原创 2013-11-29 15:12:06 · 156 阅读 · 0 评论 -
IOS UIView Touch事件传递
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{}函数的用处是判断当前的点击或者触摸事件的点是否在当前的view中它被hitTest:withEvent:调用,通过对每个子视图调用pointInside:withEvent:决定最终哪个视图来响应此事件。如果pointInside:withEvent:返回Y原创 2013-11-11 16:49:16 · 243 阅读 · 0 评论 -
IOS操作SQLite
在IOS中使用SQLite流程:引入libsqlite3.dylib库,引入头文件import 1、打开数据库 int sqlite3_open(const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */);其中第一个原创 2013-11-06 13:58:38 · 200 阅读 · 0 评论 -
IOS后台程序运行
IOS7对程序后台运行进行了加强,在IOS7之前及IOS4之后主要有三类的应用程序能够后台运行:1、音频播放2、后台定位服务3、IP电话除了这三种应用,其他程序只能是在进入后台之前向系统请求一个额外的运行时间(最长为10分钟),并在该时间内来进行后台运行操作,如保存用户信息,上传或者下载数据,进行视频编码等操作。- (void)applicationDidEnterBack原创 2013-11-05 17:31:01 · 294 阅读 · 0 评论 -
NSRunLoop消息机制
1、NSRUnLoop是消息机制的处理模式 NSRunLoop的作用在于有事情做的时候使得当前NSRunLoop的线程工作,没有事情做让当前NSRunLoop的线程休眠。2、NSTimer默认添加到当前NSRunLoop中,也可以手动指定添加到自己创建的NSRunLoop中 1)、[NSTimer schduledTimerWithInterval:targ原创 2013-11-05 13:23:32 · 274 阅读 · 0 评论 -
IOS多线程之NSOperation
使用NSOperation的方式有两种:1)、NSInvocationOperation和NSBlockOperation2)、继承NSOperationNSOperation是设计用来扩展的,只能继承重写,NSOperation的一个方法是main,然后把NSOperation子类的对象放入NSOperationQueue队列中,该队列就会启动并开始处理。如何控制线程池中原创 2013-11-05 10:55:46 · 209 阅读 · 0 评论 -
IOS多线程
IOS支持多个层次的多线程编程,层次越高的抽象成都越高,使用起来越更方便。1、NSTread Thread是这三种里面相对轻量级的,使用起来最复杂的,需要自己管理thread的生命周期,线程之间的同步。线程共享同一应用程序的部分内存空间,他们拥有对数据相同的访问权限,你得协调多个线程对同一数据的访问,一般在访问之前加锁,这样会导致一定的性能开销。 创建方式: 1原创 2013-11-04 14:50:46 · 213 阅读 · 0 评论 -
IOS多线程编程之GCD篇
一、GCD(grand central dispatch)的基本概念 从基本功能上讲,GCD像NSOperationQueue,允许程序将任务分为多个单一任务然后提交至工作队列来并发或者串行地执行 GCD比NSThread、NSOpertationQueue、NSInvocationOperation等更高效、更强大、更底层的技术 GCD原创 2013-11-04 14:12:49 · 222 阅读 · 0 评论 -
IOS多线程之Thread
一 线程创建与启动线程类 NSThread包含如下线程操作方法: //返回当前线程+ (NSThread *)currentThread; // 通过类方法创建一个线程+ (void)detachNewThreadSelector:(SEL)selector toTarget:(id)target withObject:(id)argument原创 2013-11-04 15:59:49 · 222 阅读 · 0 评论