- 浏览: 773958 次
- 性别:
- 来自: 天堂
文章分类
最新评论
-
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 16424一:模态视图 UIActi ... -
UIView 和 CALayer的那点事
2012-11-17 23:51 30782UIView 和 CALayer的那点事 (1 ... -
iOS Open Source : Popover API for iPhone
2012-01-20 15:02 1948http://iphonedevelopertips.com/ ... -
ios 任务、线程、定时器
2011-12-26 18:09 8032一:operations(任务) cocoa提供了三种 ... -
ios url缓存策略——NSURLCache、 NSURLRequest
2011-12-26 17:09 24360一:url 缓存策略 NSURLRequest ... -
ios NSInvocation简单使用
2011-12-22 16:39 6379在ios直接调用某个对象的消息是方法有两种: 一:perfo ... -
iphone 对Web Services的三种请求方式soap get post
2011-11-09 10:57 6444一:Using SO AP 1.1 POST / ... -
sdk3.2手势实例
2011-11-09 10:11 1747#import <UIKit/UIKit.h>@i ... -
关于iphone 利用hpple解析html的问题
2011-08-04 18:28 2229最近在用happe解析html中的图片。有个翻页操作,如果请 ... -
iphone hpple 解析html,xml
2011-07-19 16:21 2755使用Objective-C解析HTML或者XML,系统自带有两 ... -
激活 iPhone通过 GPRS 连接服务器功能的代码
2011-05-13 15:14 1663如果您的 iPhone 应用里含有连接服务器的功能,也许会遇到 ... -
address book api 图型
2011-04-28 15:51 1151最近要搞地址簿了,整理一下 -
[OmniGraffle]iPhone app原型制作工具
2011-04-06 17:35 3962在写程序之前,我们通常需要做一些mockup出来(不知道款爷有 ... -
自定义uislider 样式
2011-04-04 21:28 3844UIImage *stetchLeftTrack= [[UII ... -
iphone 下AsyncSocket网络库编程
2011-04-02 21:04 7647iphone的标准推荐CFNetwork ... -
进阶AlertView运用 - 登入设计
2011-04-01 17:52 3043说明:示范如何利用AlertView来制作系统登入的介面程式碼 ... -
iPad UIPopoverController弹出窗口的位置和坐标
2011-04-01 17:42 2008优化规则: TodoViewControlle ... -
iPhone系统自动化测试
2011-04-01 17:39 2624首先mac系统是必备的2 安装iPhone SD ... -
iphone上面编写具有root权限的程序
2011-04-01 17:31 6302正常途径下, 我们编写的程序发布在App store上, 使用 ... -
聊天。。。。。
2011-04-01 17:13 1095是得分手段
相关推荐
### 北京南水北调水务工程对象编码应用 #### 一、背景介绍与意义 北京南水北调工程作为优化中国水资源时空配置的重大措施,旨在解决北方地区严重的水资源短缺问题。随着信息化项目的推进,如何统一各系统的水务...
《北京南水北调水务工程对象编码应用》这篇文档主要探讨了在北京市南水北调工程中,如何通过建立统一的水务工程对象编码系统来优化信息资源整合,提升工程管理效率和水资源配置。以下是对文档中关键知识点的详细阐述...
音视频对象编码 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框架中,解编码器是数据传输过程中的关键组件,负责将接收到的原始字节流转化为应用程序可以理解的对象,或者将应用程序准备发送的对象编码成字节流。自定义解编码器能帮助我们更好地处理特定的协议格式,...