iOS NSXML词典不添加到阵列

问题描述:

我有一个NSXML解析器的实例解析一些xml并将其存储在一个对象数组中。 XML有一些图像URLS和标题,我尝试将其添加到字典中,然后将字典添加到数据对象中的数组中。字典正在正确设置,但不会添加到数组中。下面是XML和代码:iOS NSXML词典不添加到阵列

XML:

http://www.flashalert.net/rss.html?id=3753

代码:

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { 

    NSString *string1 = [string stringByReplacingOccurrencesOfString:@"amp;" withString:@""]; 
    NSString *string2 = [string1 stringByReplacingOccurrencesOfString:@""" withString:@"\""]; 
    currentNodeContent = (NSMutableString *) [string2 stringByStrippingHTML]; 
} 

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { 

    if ([elementname isEqualToString:@"item"]) { 

     isStatus = YES; 
     currentPressRelease = [FCPressRelease alloc]; 
    } 

    if ([elementname isEqualToString:@"media:content"]) { 

     isMedia = YES; 

     media = [[NSMutableDictionary alloc] init]; 
     [media setValue:[attributeDict valueForKey:@"url"] forKey:@"url"]; 
    } 
} 

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { 

    if (isStatus) 
    { 
     if ([elementname isEqualToString:@"pubDate"]) 
     { 
      currentPressRelease.pubDate = currentNodeContent; 
     } 
     if ([elementname isEqualToString:@"title"]) 
     { 
      currentPressRelease.title = currentNodeContent; 
     } 
     if ([elementname isEqualToString:@"description"]) 
     { 
      currentPressRelease.summary = currentNodeContent; 
     } 
     if ([elementname isEqualToString:@"guid"]) 
     { 
      currentPressRelease.guid = currentNodeContent; 
     } 
    } 
    if (isMedia) { 

     if ([elementname isEqualToString:@"media:title"]) 
     { 
      [media setValue:currentNodeContent forKey:@"title"]; 
     } 
    } 
    if ([elementname isEqualToString:@"media:content"]) { 

     [currentPressRelease.images addObject:media]; 

     media = nil; 
    } 
    if ([elementname isEqualToString:@"item"]) { 

     if (currentPressRelease != nil) { 

      [self.posts addObject:currentPressRelease]; 

      currentPressRelease = nil; 
      currentNodeContent = nil; 
     } 
     else { 

      currentPressRelease = nil; 
      currentNodeContent = nil; 
     } 
    } 
} 

FCPressRelease.h

@interface FCPressRelease : NSObject 

@property (strong, nonatomic) NSString *pubDate; 
@property (strong, nonatomic) NSString *title; 
@property (strong, nonatomic) NSString *summary; 
@property (strong, nonatomic) NSString *guid; 
@property (strong, nonatomic) NSMutableArray *images; 

@end 

FCPressRelease.m

@implementation FCPressRelease 

@synthesize pubDate = _pubDate; 
@synthesize title = _title; 
@synthesize summary = _summary; 
@synthesize guid = _guid; 
@synthesize images = _images; 

@end 
+0

'media'是字典你在说什么?如果是的话,请让我知道'currentPressRelease.images'中的对象'images'的类型是什么? –

+0

图像是一个NSMutableArray。我正在尝试数组的字典,以便我有一个字典数组(图像URL /标题)。 –

您应该使用init方法来完成初始化过程FCPressRelease

currentPressRelease = [FCPressRelease alloc] init];

+0

虽然这并没有解决问题。 –

+0

你能否提供'FCPressRelease'类的来源? “图像”的@属性属性是什么? –

+0

它已更新。 –