2013-03-16 3 views
-2

내 plist에서 현재 날짜와 현재 날짜를 비교하고 싶습니다. 내 plist의 현재 날짜와 날짜가 동일하면 몇 가지를 표시하고 싶습니다. 가능한가? 도와주세요. 나는 아주 급한 대답이 필요하다.프로그래밍 방식으로 plist에서 데이터를 검색하고 싶습니다

plist의 계층 구조는 Array-> Dictionary -> (객체는 하나의 배열로 간주되며 키는 모든 객체에 대해 동일해야하며 문자열 임). 열쇠를 현재 날짜와 비교하고 싶습니다.

+2

를 사용 urrent 날짜? 두 날짜를 비교하는 방법을 알고 있습니까? plist 파일을로드하는 방법을 알고 있습니까? 지금까지 가지고있는 코드를 표시하십시오 (이 필요와 관련 있음). – rmaddy

답변

2

아래 코드를 사용할 수 있습니다.

NSString *path = [[NSBundle mainBundle] pathForResource:@"EventAddress" ofType:@"plist"]; 
NSMutableDictionary *myDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:path]; 

NSArray* allmyKeys = [myDictionary allValues]; 
NSLog(@"%@", allmyKeys); 
NSLog(@"%@", [[allmyKeys objectAtIndex:0] objectAtIndex:0]); 

는 PLIS에서 날짜를 얻으려면 PLIST 일해야 포함 같은 :

<date>2011-12-13T00:00:00Z</date> 

하고있는 NSDictionary 사용으로 날짜를 얻을 :

NSDate *eventDate = [myDictionary objectForKey:@"date"]; 

두 날짜 사용을 비교 :

switch ([[NSDate date] compare:eventDate]){ 
case NSOrderedAscending: 
     NSLog(@"NSOrderedAscending"); 
break; 
case NSOrderedSame: 
     NSLog(@"NSOrderedSame"); 
break; 
case NSOrderedDescending: 
    NSLog(@"NSOrderedDescending"); 
break; 
} 

희망이 당신을 위해 작동합니다.

모두 최고 !!!

+0

이것은 plist를로드하는 방법만을 보여줍니다. 문제는 날짜를 가져 와서 현재 날짜와 비교하는 것입니다. – rmaddy

+0

업데이트 된 답변을 참조하십시오. – Yashesh

0

"이 plist의 계층 구조는 Array-> Dictionary -> (객체는 하나의 배열로 간주되며 키는 모든 객체에 대해 동일해야하며 문자열이어야합니다.) .i 원하는 , 아래에 따라

  1. 객체 전류 사전에있는 모든 키를 가져옵니다
  2. 가 현재 배열 객체
  3. 내의 모든 사전을 가져 .plist 파일에서 모든 배열을 가져 오기 단계 필요 "현재 날짜와 키 비교
  4. 키와 C를 비교하십시오. 지금까지 시도 무엇 NSComparisonResult

    NSDate *date1 = < YOUR CURRENT DATE HERE > ; 
    NSString *plistFilePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"SyncAuditMainScreen.plist"]; 
    
    NSArray *array = [NSArray arrayWithContentsOfFile:plistFilePath]; 
    for(int i=0;i<[array count];i++) 
    { 
        NSMutableDictionary *details=[array objectAtIndex:i]; 
        NSArray *allmyKeys = [details allKeys]; 
        for(NSString *key in allmyKeys) 
        { 
         NSLog(@"KEY: %@",key); 
         NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease]; 
         [formatter setDateFormat:< YOUR FORMAT OF DATE >]; 
         NSDate *date2 = [formatter dateFromString:key]; 
         NSComparisonResult result = [date1 compare:date2]; 
         if(result==NSOrderedSame) 
          NSLog(@"Key and current date are same"); 
        } 
    } 
    
관련 문제