尽pipe有mysql入口,NSArray在iOS中仍然是空的

我一直在尝试用xml输出从PHP脚本中填充Xcode中的数组,以便ios可以连接到mysql。 但是,尽pipe在mysql中有信息,我仍然得到了一个空数组。 这一定意味着我的属性部分或者我对xml的parsing是错误的,但是我真的不知道它究竟是什么错误(并且没有任何数量的主演似乎有帮助)。 我没有得到任何错误从PHP或Xcode。 有任何想法吗?

编辑:我已经按照下面的build议,我仍然得到一个空值,但我相信它来自我的PHP …

- (void)viewDidLoad { [super viewDidLoad]; char *cStr = "YES"; NSString *str3 = [NSString stringWithUTF8String:cStr]; NSString *urlString = [NSString stringWithFormat:@"(censored)", _login]; NSXMLParser *Parser = [[[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:urlString]] autorelease]; [Parser setDelegate:self]; [Parser parse]; NSDictionary *itemAtIndex =(NSDictionary *)[oneam objectAtIndex:0]; oneam = [[NSMutableArray alloc] init]; if (([[itemAtIndex objectForKey:@"its"]isEqualToString:str3 ])) { [switch1 setOn:YES animated:YES]; } else { [switch1 setOn:NO animated:YES]; } } - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { if ( [elementName isEqualToString:@"location"]) { [oneam addObject:[[NSDictionary alloc] initWithDictionary:attributeDict]]; NSLog(@"The array is %@", oneam); } } 

这里是我的PHP …

 <?php $login = "hello"; $dbh = new PDO('(censored)'); $sql = "SELECT oneam FROM login WHERE username = '$login'"; $q = $dbh->prepare( $sql ); $doc = new DOMDocument(); $r = $doc->createElement( "oneam" ); $doc->appendChild( $r ); foreach ( $q->fetchAll() as $row) { $e = $doc->createElement( "location" ); $e->setAttribute( 'its', $row['oneam']); $r->appendChild( $e ); } print $doc->saveXML(); ?> 

我不知道你是否可能把它们放在其他地方,但是你在执行.xmlparsing时缺less2个方法:foundCharacters和didEndElement。 我遵循这个教程集 (所有3个video – 约40分钟的价值),并在两个不同的实例上使用它后,它确实帮助我了解如何使用NSXMLParsers。 也许尝试遵循他的方法,看看是否为你清除了事情。

那么我应该在哪里放置“oneam = [[NSMutableArray alloc] init];”。 我放置的每个地方似乎宣布它为空或空…

每当我使用任何types的数组时,我总是使用惰性初始化,所以如果它是null,它在getter方法中初始化,如下所示:

 -(NSMutableArray *)oneam { if (!_oneam){ _oneam = [[NSMutableArray alloc] init]; } return _oneam; } 

当我@synthesize,我确定它的定义如下:

 @synthesize oneam = _oneam;