可可XML阅读器应用程序
我是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。但它不起作用可可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的新用户,有一件事很容易忘记,那就是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
}