随笔分类 -  IOS

摘要:bundle字段这些字段名都是XML中的名称,在xcode的属性编辑器中,名字并不相同bundle目录中的属性列表详细描述了有关该bundle的信息。Finder和一些系统API在一些情况下会使用这些信息。bundle支持下列字段类型:Core Foundation字段–描述了bundle的综合属性Cocoa特定的字段–描述了和Cocoa有关的bundle的属性Finder特定的字段–描述了和Finder与文件系统有关的信息启动服务字段–描述了和启动服务有关的信息标准Bundle字段Mac OS X 为描述bundle的信息提供了一组核心字段。集成开发环境会赋予这些字段缺省值。表A-1列出了这 阅读全文
posted @ 2012-12-04 16:09 OYK 阅读(483) 评论(0) 推荐(0)
摘要:Run LoopsRun loops是线程相关的的基础框架的一部分。一个run loop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。使用run loop的目的是让你的线程在有工作的时候忙于工作,而没工作的时候处于休眠状态。Run loop的管理并不完全自动的。你仍然需要设计你的线程代码在合适的时候启动run loop并正确响应输入事件。Cocoa和Core Fundation都提供了run loop objects来帮助配置和管理你线程的run loop。你的应用程序不需要显式的创建这些对象(run loop objects);每个线程,包括程序的主线程都有与之对应的run l 阅读全文
posted @ 2012-12-04 15:16 OYK 阅读(784) 评论(0) 推荐(0)
摘要:虽然iOS 5.0版本之后加入了ARC机制,但由于相互引用关系比较复杂时,内存泄露还是可能存在。所以了解原理很重要。这里讲述在没有ARC的情况下,如何使用Instruments来查找程序中的内存泄露,以及NSZombieEnabled设置的使用。本文假设你已经比较熟悉Obj-C的内存管理机制。实验的开发环境:XCode 4.5.21、运行Demo。先下载一个实现准备好的内存泄露的Demo吧:leak app下载下来,打开运行,程序是一个寿司的列表,列出各种寿司卷。试着选择里面的几行,应该是选第二行的时候就崩溃了。崩溃截图:在崩溃的地方断住了,知道crash的地方了,但是不知道具体crash的原 阅读全文
posted @ 2012-12-04 12:26 OYK 阅读(422) 评论(0) 推荐(0)
摘要:XCode 内置GDB,我们可以在命令行中使用GDB 命令来调试我们的程序。下面将介绍一些常用的命令以及调试技巧。po 命令:为 print object 的缩写,显示对象的文本描述(显示从对象的 description 消息获得的字符串信息)。比如:上图中,我使用 po 命令显示一个 NSDictionary 的内容。注意在左侧我们可以看到 dict 的一些信息:3 key/value pairs,显示该 dict 包含的数据量,而展开的信息显示 isa 层次体系(即class 和 metaclass结构关系)。我们可以右击左侧的 dict,选中“Print Description of & 阅读全文
posted @ 2012-11-29 18:26 OYK 阅读(434) 评论(0) 推荐(0)
摘要:1、 三角函数 double sin (double);正弦 double cos (double);余弦 double tan (double);正切 2 、反三角函数 double asin (double); 结果介于[-PI/2, PI/2] double acos (double); 结果介于[0, PI] double atan (double); 反正切(主值), 结果介于[-PI/2, PI/2] double atan2 (double, double); 反正切(整圆值), 结果介于[-PI, PI] 3 、双曲三角函数 double... 阅读全文
posted @ 2012-11-29 16:52 OYK 阅读(521) 评论(0) 推荐(1)
摘要:对象在运行时获取其类型的能力称为内省。内省可以有多种方法实现。判断对象类型-(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例-(BOOL) isMemberOfClass: classObj 判断是否是这个类的实例ps:本篇新建的类主要用于熟悉本篇内容设计,未考虑内存管理因素。我们试试这两个方法的使用。1、新建Person类继承NSObject,新建Teacher类继承Person1.1、新建Person类[cpp]view plaincopy#import<Foundation/Foundation.h>@interfacePer 阅读全文
posted @ 2012-11-20 17:49 OYK 阅读(903) 评论(0) 推荐(0)
摘要:转载地址:http://www.iloss.me/?p=545协议分非正式协议和正式协议先说说非正式协议非正式协议在Obj-c中关键字虽然是interface,但是这个和C#中的借口并不完全相同。回忆之前学过的内容,我们定义一个类Sample时,会生成一个Sample.h,代码如下:#import <foundation foundation.h>@interface Sample:NSObject {}-(void) HelloWorld;@end它表明Sample类中,约定了应该有一个名为HelloWorld的方法(注:这里说的时应该,而不是必须)它只是一种君子协议。如果我们在 阅读全文
posted @ 2012-06-04 23:08 OYK 阅读(2459) 评论(0) 推荐(0)
摘要:NSLog的定义NSLog定义在NSObjCRuntime.h中,如下所示:void NSLog(NSString *format, …);基本上,NSLog很像printf,同样会在console中输出显示结果。不同的是,传递进去的格式化字符是NSString的对象,而不是chat *这种字符串指针。NSLog的格式如下所示:%@ 对象%d, %i 整数%u 无符整形%f 浮点/双字%x, %X 二进制整数%o 八进制整数%zu size_t%p 指针%e 浮点/双字 (科学计算)%g 浮点/双字%s C 字符串%.*s Pascal字符串%c 字符%C ... 阅读全文
posted @ 2012-06-04 17:26 OYK 阅读(825) 评论(0) 推荐(0)
摘要:本文转自http://www.cr173.com/html/11133_1.html 做iphone开发首先第一件就是得知道iphone程序的生命周期,说白点就是当点击程序图标启动程序开始到退出程序整个使用运行过程中底下的代码都发 生了什么,只有理解了这个才能游刃有余的掌握Iphone程序的开发,否则在写程序的时候有点浑浑僵僵不知所以然的感觉。首先忘记Xcode给我们生成的 代码模板,忘记xib忘记ib,我们亲自一行一行来写一个HelloWorld程序,虽然真正开发项目的时候并不需要这样做Xcode模板和ib都会为我 们做好这些打杂的事情,但是现在完全由我们自己来写,放心这个程序是个非常的简单 阅读全文
posted @ 2012-05-29 10:57 OYK 阅读(365) 评论(0) 推荐(1)
摘要:Cocoa的内存管理主要依赖于Reference Counting, 而NSAutoReleasePool就是用来支持它的. autorelease pool中存放的对象会在其自身干枯(drain)时被release.我们都知道当一个object的release方法被触发时, 这个对象就被销毁了, 再也不能对它有任何引用, 否则就会出现异常. 但如果在销毁它时触发的是autorelease方法, 那这个object就进入了对应的autorelease pool, 它的生命就被延长了(当pool drain时才真正被销毁).在Reference Counting的环境里, Cocoa总是期望在每 阅读全文
posted @ 2012-05-29 10:46 OYK 阅读(336) 评论(0) 推荐(0)