02 2012 档案

摘要:1.什么是变量x=200等号左边的就是变量,等号右边的就是变量的内容变量具有可变性2.变量的作用用简单的字符,来替代复杂的易于变动的内容3.变量定义$ testdata="is test"这样就定义了一个变量testdata使用变量时必须加上"$"符$ echo $testdata输出"is test"输出时,需要附加其他的字符串,可以用${变量}$ echo this is ${testdata}输出"this is test"4.取消变量设置用$unset命令取消变量设置$ unset testdata命令un 阅读全文
posted @ 2012-02-22 14:37 月光的尽头
摘要:打开终端,在里面输入命令,一般终端已经帮你输入了“$”符号,只要输入具体命令就可以了1.$echo命令echo 表示:输出文本$ echo "hello world"输入结果:hello world2.$cd命令cd表示:进入某文件夹目录,或返回某目录1)进入根目录$ cd /2)进入某目录(如下:进入bin目录)$ cd bin 3)返回到上层目录$ cd ..3)返回上上层目录(中间没用空格)$ cd ../ ../4)进入用户目录(~)$ cd ~3.$ls命令ls表示:显示本层目录的所有文件和文件夹$ ls当ls后面加上具体的目录时直接输入该文件夹的详细目录信息(比 阅读全文
posted @ 2012-02-21 16:16 月光的尽头
摘要:mac上的终端使用的是Bourne-Again Shell命令,简称bashbash是GNU组织开发和推广的一个项目,是对Bourne shell的扩展Bourne shell是 UNIX 最初使用的 Shell,作者Steven Bournebash是许多Linux平台的内定Shell,传统UNIX上还有许多Shell,包括tcsh、csh、ash、bsh、kshShell Script大致都类同,一个Shell Script通常可以在很多种Shell上使用狭义的Shell指的就是命令行终端shell的作用:用户输入指令,通过Shell和内核沟通,控制硬件正常工作 阅读全文
posted @ 2012-02-21 14:39 月光的尽头
摘要:json流解析叠加器1 //实现了流解析配置代理协议2 @interface SBJsonStreamParserAccumulator : NSObject <SBJsonStreamParserAdapterDelegate>3 4 //声明的value对象,表示解析完成后的objc对象5 @property (copy) id value;6 7 @end实现了配置代理协议SBJsonStreamParserAdapterDelegate的两个方法: 1 /** 2 返回NSArray或NSDictionary对象 3 */ 4 - (void)parser:(SBJsonS 阅读全文
posted @ 2012-02-20 16:51 月光的尽头
摘要:json流解析叠加器1 //实现了流解析配置代理协议2 @interface SBJsonStreamParserAccumulator : NSObject <SBJsonStreamParserAdapterDelegate>3 4 //声明的value对象,表示解析完成后的objc对象5 @property (copy) id value;6 7 @end 阅读全文
posted @ 2012-02-20 16:46 月光的尽头
摘要:json流解析配置器1.定义了一个枚举配置器类型:1 typedef enum {2 SBJsonStreamParserAdapterNone,3 SBJsonStreamParserAdapterArray,4 SBJsonStreamParserAdapterObject,5 } SBJsonStreamParserAdapterType;2.定义了一个json流解析配置器代理协议: 1 /** 2 @json流解析配置器代理协议 3 从流解析配置器获得obj或array对象的代理 4 由流解析叠加器SBJsonStreamParserAccumulator... 阅读全文
posted @ 2012-02-20 16:39 月光的尽头
摘要:json数据流解析器1.定义了一个枚举值表示解析状态:1 typedef enum {2 SBJsonStreamParserComplete,3 SBJsonStreamParserWaitingForData,4 SBJsonStreamParserError,5 } SBJsonStreamParserStatus;2.定义了一个json流解析代理协议: 1 /** 2 由SBJsonStreamParserAdapter类实现 3 */ 4 @protocol SBJsonStreamParserDelegate 5 6 //当找到obj时调用 7 - (... 阅读全文
posted @ 2012-02-20 15:48 月光的尽头
摘要:json解析器 1 /** 2 json转objc 3 解析json字符串和NSData对象 4 内部使用了SBJsonStreamParser类 5 */ 6 7 @interface SBJsonParser : NSObject 8 9 /**10 @最大递归深度,默认为3211 如果嵌套的太深,大于32被视为恶意解析,返回nil,并发送一个错误信号12 可以通过设置maxDepth为0,来取消此安全功能13 */14 @property NSUInteger maxDepth;15 16 /**17 @返回一个出错信息,如果没错误,返回为nil18 */19 @... 阅读全文
posted @ 2012-02-20 14:46 月光的尽头
摘要:json流编写叠加器,拥有个可变data对象1 @interface SBJsonStreamWriterAccumulator : NSObject <SBJsonStreamWriterDelegate>2 3 @property (readonly, copy) NSMutableData* data;4 5 @end具体实现: 1 @implementation SBJsonStreamWriterAccumulator 2 3 @synthesize data; 4 5 - (id)init { 6 self = [super init]; 7 if (self)... 阅读全文
posted @ 2012-02-20 13:56 月光的尽头
摘要:json流编写器允许传入一个消息流对象,把它写入到SBJsonStreamWriterAccumulator的data里.1.里面含有个新的NSObject类别,把objc对象转成json允许的对象类型 1 @interface NSObject (SBProxyForJson) 2 3 /** 4 json只支持NSArray和NSDictionary等类型 5 所以转换之前先把特定objc对象转成这两种类型的形式 6 如果你有一个自定义类,要把它转成json,需要实现该方法 7 例子如下: 8 @code 9 - (id)proxyForJson {10 return [N... 阅读全文
posted @ 2012-02-20 12:02 月光的尽头
摘要:SBJsonWriter:json编写器类内部使用了json流编写器:SBJsonStreamWriter类,和json流编写累加器:SBJsonStreamWriterAccumulator类主要有4个属性: 1 /** 2 @最大递归深度,默认为32 3 如果嵌套的太深,大于32被视为恶意解析,返回nil,并发送一个错误信号 4 可以通过设置maxDepth为0,来取消此安全功能 5 */ 6 @property NSUInteger maxDepth; 7 8 /** 9 @返回一个出错信息,如果没错误,返回为nil10 */11 @property (readonly, ... 阅读全文
posted @ 2012-02-17 17:49 月光的尽头
摘要:一.NSObject+SBJson.h1.把objc对象编码成json字符串通过类别,为NSObject添加新方法:[NSObjectJSONRepresentation]1 @interface NSObject (NSObject_SBJsonWriting)2 /**3 虽然定义成NSObject的类别,但仅对NSArray和NSDictionary有效4 返回:已编码的json对象,或nil5 */6 - (NSString *)JSONRepresentation;7 @end2.把json对象解析为objc对象通过类别,为NSString添加新方法:[NSStringJSON... 阅读全文
posted @ 2012-02-17 16:03 月光的尽头
摘要:SBJson是一个开源的json库,结构如下:结构主要分为:主头文件SBJson.h,一个对象类别扩展NSObject+SBJson.h,一个json解析包Parser,一个json编写包Writer任何使用SBJson库的地方都要导入SBJson.h头文件#import "SBJson.h" 1.JSON转Objective-C,方法如下:null -> NSNullstring -> NSStringarray -> NSMutableArrayobject -> NSMutableDictionarytrue -> NSNumber 阅读全文
posted @ 2012-02-17 15:31 月光的尽头
摘要:Git:是用于 Linux 内核开发的版本控制工具。Git使用友好的脚本命令,用来管理我们自己的开发项目作为开源自由原教旨主义项目,Git 没有对版本库的浏览和修改做任何的权限限制。 它只适用于 Linux / Unix 平台,没有 Windows 版本git中文教程:http://www.linuxsir.org/main/doc/git/gittutorcn.htm 阅读全文
posted @ 2012-02-17 13:45 月光的尽头
摘要:http://www.json.org/json-zh.htmlJSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,是“名称/值”对的集合具有以下这些形式:1.对象:是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。2.数组:是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。3.值(value):可以是双引号括起来的字符串(string)、数值(number)、t 阅读全文
posted @ 2012-02-17 11:57 月光的尽头
摘要: 阅读全文
posted @ 2012-02-15 11:58 月光的尽头
摘要:在真机,或真机没连接到电脑时,可以把日志信息输出到文件1.设置日志文件路径 1 - (NSString*)logFilePath { 2 //非越狱版路径 3 #ifndef CRACK 4 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 5 NSString *documentsDirectory = [paths objectAtIndex:0]; 6 //越狱版路径 7 #else 8 NSString *d... 阅读全文
posted @ 2012-02-14 14:54 月光的尽头
摘要:1. 通过分配或复制创建的对象保持计数12. 假设任何别的方法获取的对象保持计数1,而且在自动释放池中. 要想在当前执行范围外使用该对象,就必须保持它3. 向集合添加对象时它就被保持,从集合移除对象时就被释放.释放集合对象会释放该集合中的所有对象4. 确保有多少alloc,copy,mutableCopy或retain消息就有多少release或autorelease消息发送给该对象. 换句话说,确保你的代码平衡5. 在访问方法设置属性,先保持,再释放 (ztime: 现在有@propperty , @synthesize 两个指令自动创建此代码)6. 用@"..."结构创 阅读全文
posted @ 2012-02-14 13:19 月光的尽头
摘要:EXC_BAD_ACCESS错误一般难以跟踪,出现的原因:对一个已经释放的对象进行release,或向已经释放的对象发送消息其实就是使用了野指针定位出错点:1.添加NSZombieEnabled环境变量(参考设置NSZombieEnabled和MallocStackLogging)在EXC_BAD_ACCESS发生时,控制台会打印问题描述比如输出:Untitled[3646:a0f] *** -[CFString release]: message sent to deallocated instance 0x10010d3402.此时就可以通过以下命令,得到信息(gdb) shell mal 阅读全文
posted @ 2012-02-14 13:00 月光的尽头
摘要:在模拟器上调试时,经常遇到内存访问错误,如下:2012-02-14 11:21:11.41 App[2433:205] *** -[Test retain]: message sent to deallocated instance 0x11e4fb1.在设置了MallocStackLogging之后(可查看设置NSZombieEnabled和MallocStackLogging)就可以在终端上输入 info malloc-history 命令,如下所示:(gdb) info malloc-history 0x11e4fb其中0x11e4fb为出错地址,这样就能得到堆栈信息2.此外,还有另一个 阅读全文
posted @ 2012-02-14 11:49 月光的尽头
摘要:在XCode,4以上版本中,设置NSZombieEnabled和MallocStackLogging1.点击XCode的Product菜单,选择Edit Scheme...选项2.选择左侧的Run...,右边点击Arguments3.在Environment Variables栏里,添加NSZombieEnabled,value为YES;再添加MallocStackLogging,value为YES;如下图所示:以上选项只能在模拟器上有效,如果你改变了iOS的版本,需要重新设定。调试结束后,最好记得把环境变量NSZombieEnabled,MallocStackLogging前面的勾去掉,因为 阅读全文
posted @ 2012-02-14 11:14 月光的尽头
摘要:先在自定义的ViewController里声明定义一个UIImageView1 @property (nonatomic,retain) UIImageView *imgView;1 @synthesize imgView;在viewDidLoad函数里添加图片,并执行组合动画 1 //添加图片 2 imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Icon@2x.png"]]; 3 imgView.frame = CGRectMake(100, 100, imgView.frame.si. 阅读全文
posted @ 2012-02-10 15:14 月光的尽头