我有一个基于IB(Xcode 4)的GUI 它有一个连接到NSTextField的静态文本字段。从XML文件中读取信息之后,它应该将文本更改为来自XML的文本
.h如下:
IBOutlet NSTextField * DataBaseLocation;
.m
NSMutableArray* DBLoc = [[NSMutableArray alloc] initWithCapacity:1];
NSXMLElement* root = [doc rootElement];
NSArray* DBarray = [root nodesForXPath:@"//DataBaseLocation" error:nil];
for(NSXMLElement* xmlElement in DBarray)
[DBLoc addObject:[xmlElement stringValue]];
NSString * DBLocationString = [DBLoc objectAtIndex:0];
[DataBaseLocation setStringValue:DBLocationString];
NSLog(@"DBLoc: %@", DBLoc);
NSLog
显示DBLoc
具有正确的字符串,但文本字段为空且永远不会设置。
答案 0 :(得分:1)
找到答案。
我需要使用NSXMLDocument
初始化NSXMLDocumentTidyXML
,如:
NSXMLDocument* doc = [[NSXMLDocument alloc] initWithContentsOfURL: [NSURL fileURLWithPath:input] options:NSXMLDocumentTidyXML error:NULL];
答案 1 :(得分:0)
你应该打印出DBLocationString而不是DBLoc,以确保它不是空的,或者是某些损坏的格式,不能作为字符串值传递并从那里开始。