コードがあります
`-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
NSLog(@"%@",elementName);
if ([elementName isEqual:@"impproject"]) {
impprojectdata=[[impProjectData alloc]init];
[impprojectdata setParentParserDelegate:self];
[parser setDelegate:impprojectdata];
}
}
`
それからここに来ます:
` -(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
NSLog(@"did start parser:%@", elementName);
if ([elementName isEqual:@"project"]){
ProjectDataItem *project=[[ProjectDataItem alloc]init];
[project setParentParserDelegate:self];
[parser setDelegate:project];
[items addObject:project];
}
}`
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
NSLog(@"found character:%@", string);
[currentString appendString:string];
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
NSLog(@"did end parser:%@", elementName);
currentString=nil;
if ([elementName isEqual:@"improject"]) {
[parser setDelegate:parentParserDelegate];
NSLog(@"items.count is %d",items.count);
}
}
それからここに
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
NSLog(@"startElement %@",elementName);
if ([elementName isEqual:@"DWMC_CN"]) {
currentString=[[NSMutableString alloc]init];
self.name=currentString;
}else if ([elementName isEqual:@"CZXMMC_CN"]){
currentString=[[NSMutableString alloc]init];
self.title=currentString;
}else if ([elementName isEqual:@"CNNAME"]){
currentString=[[NSMutableString alloc]init];
self.name=currentString;
}else if ([elementName isEqual:@"COMPANY"]){
currentString=[[NSMutableString alloc]init];
self.title=currentString;
}
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
[currentString appendString:string];
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
currentString =nil;
if ([elementName isEqual:@"project"]) {
[parser setDelegate:parentParserDelegate];
}
}
次に、2 番目の部分のコードが返されます。
それで私の質問があります。配列「items」にオブジェクトを1つだけ追加します。
理由がわかりません...... githubリンクは次のとおりです:github.com/TedWei/gaojiaohui
私を助けてください 。iOS の新人、かわいそう。
elementName がプロジェクトである理由がわかりません。新しいオブジェクトを作成せず、配列に追加しません。それはちょうど終了します....
私の英語でごめんなさい。助けてください。