- 浏览: 772524 次
- 性别:
- 来自: 天堂
文章分类
最新评论
-
xiaozhao-521:
呀呀呀呀呀呀呀
RequestTest222 -
Andy_hyh:
打扰了,问下openmeeting源码可以运行起来吗?
Openmeetings安装 详细步骤 -
qindongliang1922:
擦,现在还行么,厉害
北京免费吃饭的地方 -
minixx77:
...
Openmeetings安装 详细步骤 -
wwwqqqiang:
喜欢楼主分享问题的方式,有思想
UIView 和 CALayer的那点事
// // codeObj.h // encodeObject // // Created by 110 on 10-2-6. // Copyright 2010 __MyCompanyName__. All rights reserved. // #import <Cocoa/Cocoa.h> /** cocoa具备一种机制来将对象自身转换为某种格式并保存中磁盘上。 对象可以将它们的实例变量和其他数据编码为数据块,然后保存到磁盘中。以后将这些数据块都会到内存中,并且 还能基于保存的数据创建新对象。这个过程称为编码和解码,或称为序列化和反序列化。 */ /** 要编码的对象,必须实现NSCoding协议。 @protocol NSCoding -(void) encoderWithCoder:(NSCoder *) aCoder; -(id) initWithCoder:(NSCoder *) aDecoder; @end 当对象需要保存自身时-encoderWithCoder:方法被调用 当对象需要加载自身时-initWithCoder:方法被调用 */ @interface codeObj : NSObject <NSCoding>{ NSString *name; int magicNumber; float shoseSize; NSMutableArray *subThingies; } @property (copy) NSString *name; @property int magicNumber; @property float shoseSize; @property (retain) NSMutableArray *subThingies; -(id) initwithName:(NSString *) n magicNumber:(int) mn shoseSize:(float) ss; @end//
// codeObj.m // encodeObject // // Created by 110 on 10-2-6. // Copyright 2010 __MyCompanyName__. All rights reserved. // #import "codeObj.h" @implementation codeObj @synthesize name; @synthesize magicNumber; @synthesize shoseSize; @synthesize subThingies; -(id) initwithName:(NSString *) n magicNumber:(int) mn shoseSize:(float) ss{ if(self=[super init]){ self.name=n; self.magicNumber=mn; self.shoseSize=ss; self.subThingies=[NSMutableArray array]; } return (self); } -(void) dealloc{ [name release]; [subThingies release]; [super dealloc]; } //nscoding协议的方法 -(void) encodeWithCoder:(NSCoder *) coder{ [coder encodeObject:name forKey:@"name"]; [coder encodeInt:magicNumber forKey:@"magicNumber"]; [coder encodeFloat:shoseSize forKey:@"shoseSize"]; [coder encodeObject:subThingies forKey:@"subThingies"]; } /** initWithCode:和其他init方法一样,中对对象执行操作之前,需要使用超类对它们进行初始化。为此,可以采用 两种方式,具体取决于父类,如果父类采用了NSCoding协议,则应该调用[super initWithCoder:decoder]; 否则,只需要调用[super init]即可。NSObject不采用NSCoding协议,因此我们可以使用简单的init方法 */ /** decodeObjectForKey:把一个对象从解码器中取出 decodeIntForKey:把int从解码器中取出,在嵌入的对象上递归使用initWithCoder:方法。 */ -(id) initWithCoder:(NSCoder *) decoder{ if(self =[super init]){ self.name=[decoder decodeObjectForKey:@"name"]; self.magicNumber=[decoder decodeIntForKey:@"magicNumber"]; self.shoseSize=[decoder decodeFloatForKey:@"shoseSize"]; self.subThingies=[decoder decodeObjectForKey:@"subThingies"]; } return (self); } -(NSString *) description{ NSString *descripton=[NSString stringWithFormat:@"%@:%d,%.1f,%@",name,magicNumber, shoseSize,subThingies]; return (descripton); } @end
#import <Foundation/Foundation.h>
#import "codeObj.h" int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; codeObj *thing; thing=[[[codeObj alloc] initwithName:@"name" magicNumber:20 shoseSize:30.5] autorelease]; NSLog(@"--------%@",thing); /** +archivedDataWithRootObject:类方法编码thing对象。首先,它在后台创建一个NSKeyedArchiver实例 ,然后,它将NSKeyedArchiver实例传递给对象thing的-encodeWithCoder:方法。当thing编码自身的属性时 ,它可能对其他对象也进行编码,例如字符串,数组以及我们可能输入到该数组中的任何内容。整个对象集合完成键和值 的编码后,具有键/值对的归档程序将所有对象扁平化为一个NSData类并将其返回. */ NSData *freezeDrid; freezeDrid=[NSKeyedArchiver archivedDataWithRootObject:thing]; [freezeDrid writeToFile:@"/tmp/codeobj.txt" atomically:YES]; codeObj *anotherThing; anotherThing=[[[codeObj alloc] initwithName:@"ssssss" magicNumber:20 shoseSize:4.5] autorelease]; [anotherThing.subThingies addObject:thing]; NSData *other; other=[NSKeyedArchiver archivedDataWithRootObject:anotherThing]; //写入文件 [other writeToFile:@"/tmp/objandobj.txt" atomically:YES]; //从文件中读取 NSData *fileData; fileData=[NSData dataWithContentsOfFile:@"/tmp/objandobj.txt"]; codeObj *fromFile; fromFile=[NSKeyedUnarchiver unarchiveObjectWithData:fileData]; NSLog(@"------%@",fromFile); [pool drain]; return 0; }
- encodeObject.zip (2.2 MB)
- 下载次数: 24
评论
3 楼
xiaozhao-521
2010-06-10
cx_jin 写道
有个疑问?
为何协议申明encoderWithCoder:的参数是aCoder 而实现时是coder呢?
要编码的对象,必须实现NSCoding协议。
@protocol NSCoding
-(void) encoderWithCoder:(NSCoder *) aCoder;
-(id) initWithCoder:(NSCoder *) aDecoder;
@end
为何实现implementation 时
-(void) encodeWithCoder:(NSCoder *) coder == aCoder
-(id) initWithCoder:(NSCoder *) decoder == aDecoder
为何协议申明encoderWithCoder:的参数是aCoder 而实现时是coder呢?
要编码的对象,必须实现NSCoding协议。
@protocol NSCoding
-(void) encoderWithCoder:(NSCoder *) aCoder;
-(id) initWithCoder:(NSCoder *) aDecoder;
@end
为何实现implementation 时
-(void) encodeWithCoder:(NSCoder *) coder == aCoder
-(id) initWithCoder:(NSCoder *) decoder == aDecoder
这个只是形参,叫什么名字没有什么关系的
2 楼
cx_jin
2010-06-04
有个疑问?
为何协议申明encoderWithCoder:的参数是aCoder 而实现时是coder呢?
要编码的对象,必须实现NSCoding协议。
@protocol NSCoding
-(void) encoderWithCoder:(NSCoder *) aCoder;
-(id) initWithCoder:(NSCoder *) aDecoder;
@end
为何实现implementation 时
-(void) encodeWithCoder:(NSCoder *) coder == aCoder
-(id) initWithCoder:(NSCoder *) decoder == aDecoder
为何协议申明encoderWithCoder:的参数是aCoder 而实现时是coder呢?
要编码的对象,必须实现NSCoding协议。
@protocol NSCoding
-(void) encoderWithCoder:(NSCoder *) aCoder;
-(id) initWithCoder:(NSCoder *) aDecoder;
@end
为何实现implementation 时
-(void) encodeWithCoder:(NSCoder *) coder == aCoder
-(id) initWithCoder:(NSCoder *) decoder == aDecoder
1 楼
cx_jin
2010-06-04
学习了,谢谢!
发表评论
-
iOS 自定义UIActionSheet
2012-12-18 16:07 16417一:模态视图 UIActi ... -
UIView 和 CALayer的那点事
2012-11-17 23:51 30755UIView 和 CALayer的那点事 (1 ... -
iOS Open Source : Popover API for iPhone
2012-01-20 15:02 1940http://iphonedevelopertips.com/ ... -
ios 任务、线程、定时器
2011-12-26 18:09 8028一:operations(任务) cocoa提供了三种 ... -
ios url缓存策略——NSURLCache、 NSURLRequest
2011-12-26 17:09 24356一:url 缓存策略 NSURLRequest ... -
ios NSInvocation简单使用
2011-12-22 16:39 6370在ios直接调用某个对象的消息是方法有两种: 一:perfo ... -
iphone 对Web Services的三种请求方式soap get post
2011-11-09 10:57 6435一:Using SO AP 1.1 POST / ... -
sdk3.2手势实例
2011-11-09 10:11 1740#import <UIKit/UIKit.h>@i ... -
关于iphone 利用hpple解析html的问题
2011-08-04 18:28 2223最近在用happe解析html中的图片。有个翻页操作,如果请 ... -
iphone hpple 解析html,xml
2011-07-19 16:21 2751使用Objective-C解析HTML或者XML,系统自带有两 ... -
激活 iPhone通过 GPRS 连接服务器功能的代码
2011-05-13 15:14 1656如果您的 iPhone 应用里含有连接服务器的功能,也许会遇到 ... -
address book api 图型
2011-04-28 15:51 1147最近要搞地址簿了,整理一下 -
[OmniGraffle]iPhone app原型制作工具
2011-04-06 17:35 3957在写程序之前,我们通常需要做一些mockup出来(不知道款爷有 ... -
自定义uislider 样式
2011-04-04 21:28 3837UIImage *stetchLeftTrack= [[UII ... -
iphone 下AsyncSocket网络库编程
2011-04-02 21:04 7639iphone的标准推荐CFNetwork ... -
进阶AlertView运用 - 登入设计
2011-04-01 17:52 3037说明:示范如何利用AlertView来制作系统登入的介面程式碼 ... -
iPad UIPopoverController弹出窗口的位置和坐标
2011-04-01 17:42 2000优化规则: TodoViewControlle ... -
iPhone系统自动化测试
2011-04-01 17:39 2615首先mac系统是必备的2 安装iPhone SD ... -
iphone上面编写具有root权限的程序
2011-04-01 17:31 6293正常途径下, 我们编写的程序发布在App store上, 使用 ... -
聊天。。。。。
2011-04-01 17:13 1092是得分手段
相关推荐
### 北京南水北调水务工程对象编码应用 #### 一、背景介绍与意义 北京南水北调工程作为优化中国水资源时空配置的重大措施,旨在解决北方地区严重的水资源短缺问题。随着信息化项目的推进,如何统一各系统的水务...
《北京南水北调水务工程对象编码应用》这篇文档主要探讨了在北京市南水北调工程中,如何通过建立统一的水务工程对象编码系统来优化信息资源整合,提升工程管理效率和水资源配置。以下是对文档中关键知识点的详细阐述...
音视频对象编码 ISO 14496-1,通常被称为MPEG-4 Part 1或ISO/IEC 14496-1,是国际标准化组织(ISO)和国际电工委员会(IEC)联合制定的一份技术标准,旨在为多媒体数据提供高效且灵活的编码方法。该标准是MPEG-4系列...
同时,通过自定义类,开发者还可以构建自己的对象编码规则,以满足特定需求。 在描述中提到的“@易语言源码分享站”,可能是指一个社区或者网站,该站点提供易语言的源代码分享和学习资源。对于初学者来说,这样的...
PRP系统关键对象编码解读PPT教案.pptx
json_encode 将 MATLAB 对象编码为 JSON 字符串。 结构转换为 JSON 对象,数组转换为 JSON 数组。 Inf 值被转换为字符串“Inf”。 NaN 值转换为“空”。 笔记: 此函数实现了原始 RFC 4627 中指定的 JSON 超集 - ...
深度访谈式研究范式--对象编码、正文论据支撑.caj
本文探讨了一种名为“基于对象的精细可伸缩性编码”(FGSIO)的技术,这是一种结合了对象编码与位平面编码的方法,旨在解决在丢包网络环境下高质量医学图像传输的问题。 **核心概念解释**: 1. **精细可伸缩性编码*...
在“面罩辅助对象编码和深度学习用于监控视频中的对象检索”这篇研究论文中,作者团队提出了一种基于深度学习的视觉对象编码和检索方法。该方法利用了深度神经网络的非线性映射能力,并结合面罩信息来辅助对象的表示...
1. 视觉对象编码:MPEG-4中包含了多种编码算法,如Advanced Simple Profile (ASP) 和 Advanced Video Coding (AVC),也被称为H.264。ASP主要应用于移动设备和低带宽环境,而AVC则提供了更高的压缩效率,广泛用于高清...
建筑工程设计信息模型分类和编码标准,为住建部组织编制的BIM实施标准的征求意见稿
`Binary_Encoding` 库或模块可能是为了解决这一需求而设计的,它允许开发者高效地将对象编码为二进制格式,并存储或传输这些数据。 `Binary_Encoding` 提供了将对象编码到缓冲区(Buffer)的功能,Buffer是Node.js...
本讲义涵盖了光电编码器的基础知识,包括编码器的认识、测量对象、测量方式、绝对式测量、增量式测量、在数字测速和主轴控制中的应用等内容。 一、认识编码器 编码器是测量旋转或直线位移的传感器,常用于机器人...
2. **对象编码**:在MPEG4中,多媒体数据被表示为一个个独立的“视觉对象”,每个对象可以单独进行压缩。这种基于对象的方法允许对不同对象应用不同的编码策略,比如对运动物体采用更高效的运动补偿预测,对静止背景...
MPEG-4不仅仅关注视频编码,还包括音频、交互性和对象编码,旨在实现多媒体内容的高效存储、传输和管理。 MPEG-4编码的核心在于它的分层和对象导向性。与早期的MPEG-1和MPEG-2标准相比,MPEG-4更注重内容的独立性,...
将AS3对象编码到Lua表中。 将Lua表字符串解码为AS3对象。 ### AS3对象的输入和输出示例: var as3Obj = new Object () ;as3Obj [ "name" ] = "foo" ; <---> Lua字符串: return { name = " foo " ,} 限制:不...
2. MPEG4:相比MPEG2,MPEG4引入了更多先进的编码技术,如形状自适应块运动补偿、对象编码和高级预测模式。这使得MPEG4在处理复杂场景和对象分离上更为优秀,尤其适用于交互式多媒体应用。 3. H.264/AVC:H.264(也...
3. 数据分组:MPEG-4支持对象编码,允许独立编码和处理视频中的不同对象,如人物、背景等,增强了交互性和可扩展性。 4. 复用和封装:将编码后的音视频数据按照MPEG-4容器格式(如MP4或3GP)进行组织,便于存储和...
在MINA框架中,解编码器是数据传输过程中的关键组件,负责将接收到的原始字节流转化为应用程序可以理解的对象,或者将应用程序准备发送的对象编码成字节流。自定义解编码器能帮助我们更好地处理特定的协议格式,...