2014-10-14 2 views
0

XML 파일을 기반으로하는 유연한 사전을 만들려고합니다. xmlDigester를 몇 가지 규칙과 함께 사용하면 모든 것이 제 사전의 값을 파싱 할 때까지 잘됩니다. 위 유연한 사전

은 XMLdigister로 사전을 만들 내 객체 클래스입니다 :

@interface slideInfo : NSObject 
@property (nonatomic, strong) NSNumber *id; 
@property (nonatomic, strong) NSString *appname; 
@property (nonatomic, strong) NSString *marketinfos; 
@property (nonatomic, strong) NSString *questionMarket; 
@property (nonatomic, strong) NSString *theText; 

@property (nonatomic, strong) NSMutableDictionary * mrtInfos; 

-(void)addInfo:(marketInfos*)market; 
-(void)questionMarket:(answerHandler*)qMarket; 

@end 

하는 .m 파일

@implementation slideInfo 

@synthesize id, version, appname, marketinfos, questionMarket, mrtInfos, theText; 

- (id)init { 

    if ((self = [super init])) { 
     self.mrtInfos = [NSMutableDictionary new]; 
    } 
    return self; 
} 

-(void)addInfo:(marketInfos*)market 
{ 
    NSString *key = [NSString stringWithFormat:@"%@ %@", market.name, market.image]; 
    [mrtInfos setObject:market forKey:key]; 

} 

-(void)questionMarket:(answerHandler*)qMarket 
{ 
    NSString *key = [NSString stringWithFormat:@"%@ %@ %@ %@", qMarket.name, qMarket.image, qMarket.question, qMarket.answer]; 
    [mrtInfos setObject:qMarket forKey:key]; 
    theText = qMarket.question; 
    NSLog(@"Dic: %@" , theText); 
} 


@end 

answeHandler.h

@interface answerHandler : NSObject 

@property (nonatomic, strong) NSString *id; 
@property (nonatomic, strong) NSString *name; 
@property (nonatomic, strong) NSString *image; 
@property (nonatomic, strong) NSString *question; 
@property (nonatomic, strong) NSString *answer; 

-(NSString *)marketString; 

@end 

와하는 .m

@implementation answerHandler 

@synthesize id, name, image, question, answer; 

- (id)init { 
    if ((self = [super init])) { 
     NSLog(@"answerHandler init"); 
    } 
    return self; 
} 

-(NSString *)marketString { 
    return [NSString stringWithFormat:@"%@ %@ %@ %@ %@" ,id, name, image, question, answer]; 
} 

@end 

제 질문은 어떻게 사전에서 특정 값을 검색 할 수 있습니까? 내가 시도한 모든 것은 null을 반환합니다. 사전에 감사합니다

답변

0

주요 질문은 당신이 검색/사전에 검색해야합니다. ID 개체를 NSDictionary 내부의 키로 사용하지 않는 이유는 무엇입니까?

-(void)addInfo:(marketInfos*)market 
{ 
    NSString *key = [NSString stringWithFormat:@"%@ %@", market.id]; 
    [mrtInfos setObject:market forKey:key]; 

} 

그런 다음 해당 ID를 사용하여 사전에서 검색하십시오.

-(marketInfos*)objectFromDictionary:(NSNumber*)id 
{ 

    return = [mrtInfos objectForKey:id]; 

} 
+0

내 XML 파일에는 여러 노드가 있습니다. 사전에 질문 문자열을 말하도록 특별히 구문 분석하고 싶습니다. – axel