Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可可XML阅读器应用程序_Xml_Xcode_Cocoa_Nsxmldocument - Fatal编程技术网

可可XML阅读器应用程序

可可XML阅读器应用程序,xml,xcode,cocoa,nsxmldocument,Xml,Xcode,Cocoa,Nsxmldocument,我是Cocoa的新手,只是在Windows上用C/C++开发一些小应用。 我想在Cocoa上制作一个“简单”的应用程序。 当创建特定于用户的XML文件时,文件节点表示为“enduser可视” 我与一些NSTextField建立了一个接口。 我为NSDocument创建了一个名为“XMLFile”的子类,因此在我的Xcode项目中得到了“XMLFile.h”和“XMLFile.m” 在我的应用程序列表中,我设置了一个新的“文档类型”: XML文件扩展名:XML-角色:视图-类:XMLFile-存储

我是Cocoa的新手,只是在Windows上用C/C++开发一些小应用。 我想在Cocoa上制作一个“简单”的应用程序。 当创建特定于用户的XML文件时,文件节点表示为“enduser可视”

我与一些NSTextField建立了一个接口。 我为NSDocument创建了一个名为“XMLFile”的子类,因此在我的Xcode项目中得到了“XMLFile.h”和“XMLFile.m”

在我的应用程序列表中,我设置了一个新的“文档类型”: XML文件扩展名:XML-角色:视图-类:XMLFile-存储类型:XML

这是我的“XMLFile.h”:

用户打开XMLFile,XMLDocument分析该文件以提取节点的数据,并将其发送到differents NSTextField。但它不起作用


如果有人能帮我。

你对什么不起作用不太明确,但这里有一两个可能会引起麻烦的猜测

作为Cocoa的新用户,有一件事很容易忘记,那就是IBOutlets必须实际连接到Interface Builder中。控制从Document.xib中的每个文本字段到文件所有者的拖动,并确保将它们分配到正确的出口

另一项看起来很奇怪(虽然我不确定它是否会导致问题)是使用
for
循环来设置文本字段的
stringValue
。如果每个元素的数组中有多个项,则在设置文本字段的值之前,您需要自己连接字符串。重复设置该值只会删除以前的值。如果每个数组中只有一个项,为什么不简单地执行以下操作:

NSArray *dateElement = [root 
               nodesForXPath:@"//Report/ReportCreationDate" 
                       error:nil];
[dateField setStringValue:
           [[dateElement objectAtIndex:0] stringValue]];
最后,您可能希望尝试确保在查询NSXMLDocument时没有错误:

NSError *dateErr;
NSArray *dateElement = [root 
               nodesForXPath:@"//Report/ReportCreationDate" 
                       error:&dateErr];
if( dateElement ){
    // set the stringValue
}
else {
    // inspect the error
}

现在你有特权了@sudo rm-rf嘿,谢谢你的投票!(看来我还是有点缺少“评论无处不在”的代表。)啊,我还以为是20。我猜是50,哦,好吧。继续D
NSArray *dateElement = [root 
               nodesForXPath:@"//Report/ReportCreationDate" 
                       error:nil];
[dateField setStringValue:
           [[dateElement objectAtIndex:0] stringValue]];
NSError *dateErr;
NSArray *dateElement = [root 
               nodesForXPath:@"//Report/ReportCreationDate" 
                       error:&dateErr];
if( dateElement ){
    // set the stringValue
}
else {
    // inspect the error
}