gpt4 book ai didi

objective-c - 使用 NSData 解析 xml

转载 作者:行者123 更新时间:2023-12-03 17:24:18 26 4
gpt4 key购买 nike

我正在使用 cocoa,我想解析一个 xml 文件。
但是我的代码中有两个警告

从不同的 Objective-C 类型传递“initWithContentsOfURL:”的参数 1 时,不兼容的 Objective-C 类型“struct NSString *”,预期为“struct NSURL *”并且类“XMLParser”未实现“NSXMLParserDelegate”协议(protocol)

这是我的代码:

int main(int argc, char *argv[])
{

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSData *data = [[NSData alloc] initWithContentsOfURL:@"/Users.xml"]; // here is the first warning
// create and init NSXMLParser object
NSXMLParser *nsXmlParser = [[NSXMLParser alloc] initWithData:data];

// create and init our delegate
XMLParser *parser = [[XMLParser alloc] initXMLParser];

// set delegate
[nsXmlParser setDelegate:parser]; // here is the second warning

// parsing...
BOOL success = [nsXmlParser parse];

// test the result
if (success) {
NSLog(@"No errors");// - user count : %i", [parser [users count]]);
// get array of users here
// NSMutableArray *users = [parser users];
} else {
NSLog(@"Error parsing document!");
}

[parser release];
[nsXmlParser release];
[pool drain];

return NSApplicationMain(argc, (const char **) argv);
}

请问我该如何解决这个问题?当我运行时,它告诉我程序收到信号 SIGABRT 但它不起作用

最佳答案

嗯,有一个 NSURL 类...您需要传递其中一个类,就像警告所说的那样。

并且不要将解析器的委托(delegate)设置为解析器本身。如果您不需要委托(delegate),则无需设置委托(delegate)。委托(delegate)用于回调,因此您的应用程序可以在解析期间操纵事物。

关于objective-c - 使用 NSData 解析 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11396316/

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