gpt4 book ai didi

iphone - iPhone 应用程序的 Xml 序列化库

转载 作者:数据小太阳 更新时间:2023-10-29 01:41:50 25 4
gpt4 key购买 nike

<分区>

Apple 提供了用于对象序列化/反序列化的 NSArchiver 和 NSUnachriver,但这不能处理任何自定义的 xml 模式。因此,必须手动使用任何自定义 xml 模式的数据填充对象结构。由于 iPhone 开发者社区正在迅速发展,许多新手程序员都对处理可用的 xml 解析可能性感到绝望。

iPhone SDK 只提供了 NSXmlParser 用于 xml 解析,这对于读取 xml 文件的某些部分更有用,而不是填充整个对象结构,这真的很痛苦。

另一种可能性是著名的 libxml 库,它是用 ANSI C 编写的——对于开始使用 objective-c 编程并且之前从未学习过正确的 C 的人来说不容易使用。事件有很多可用的包装器,处理 xml 对新手来说可能是一种痛苦。

我的想法就在这里发生了。自动填充对象结构的 XmlSerializer 库可以使许多程序员更容易并提高应用程序质量。我的想法应该是这样的:

xml文件

<Test name="Michael" uid="28">
<Adress street="AlphaBetaGammastrasse 1" city="Zürich" postCode="8000" />

<Hobbies>
<Hobby describtion="blabla"/>
<Hobby describtion="blupblup"/>
</Hobbies>
</Test>

要填写的类(class)

@interface Test : NSObject {
NSString *name;
Adress *adress;
NSArray *hobbies;
int uid;
}
@property (nonatomic, copy) NSString *name;
@property (nonatomic, retain) Adress *adress;
@property (nonatomic, retain) NSArray *hobbies;
@property (nonatomic, readwrite) int uid;
@end

@interface Adress : NSObject {
NSString *street;
NSString *city;
int postCode;
}
@property (nonatomic, copy) NSString *street;
@property (nonatomic, copy) NSString *city;
@property (nonatomic, readwrite) int postCode;
@end

xml 序列化程序应该如何工作

NSError *error = nil;
XMLSerializer *serializer = [[XMLSerializer alloc] init];
NSData *data = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"TestFile" ofType:@"xml"]];
Test *test = [serializer deserializeWithData:data error:&error];

填充对象结构只需要一行代码:

Test *test = [serializer deserializeWithData:data error:&error];

这将非常易于使用,任何新手程序员都可以使用它。对于更高级的用法,序列化程序可以是可配置的。

您认为这会是一个有用且流行的 iPhone 和 OSX 应用程序库吗?

编辑:可以看到项目here ,但离发布还有很长的路要走。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com