2016-08-03 1 views
0

하루의 번호 (예 : 월요일은 1, 화요일은 2 ... 등)의 이름 (예 : 월요일, 화요일 ..)을 가져 오는 방법을 알아 내려고합니다.일 번호에서 요일의 이름을 가져옵니다. (iOS)

나는 이와 같이 구조화 된 NSDictionary을 가지고 있습니다.

{ 
close =  { 
    day = 5; 
    time = "22:00"; 
    dayName = ""; 
}; 
open =  { 
    day = 5; 
    time = "9:00"; 
    dayName = ""; 
}; 
} 

나는 값이 키 "일"의 일 번호에 해당하는 일의 이름입니다 키 "DAYNAME"...에서이 사전에 일의 이름을 추가 할 수 있습니다.

감사합니다 :) 당신이 그것을 확인하려는 경우 하루 DAYNAME을 대체 할 수

+0

글쎄, 숫자 스위치 (일)에 따라 문자열을 반환하는 열거 메서드를 만들 수 있습니다 ... 경우 1 : 반환 월요일 ... – Stefan

답변

3

하자의 시작은 :

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSArray *daySymbols = dateFormatter.standaloneWeekdaySymbols; 

지금,이 때문에 당신이 당신의 색인을 변환해야합니다, 인덱스 0 일요일 요일 이름의 배열입니다.

NSInteger dayIndex = 1; // 1 = Monday, ... 7 = Sunday 
NSString *dayName = daySymbols[dayIndex % 7]; 
+0

감사합니다. 이것은 내 필요에 완벽하게 작동합니다. –

-1
NSString * closeDay=[[yourDictionary valueForKey:@"close"] valueForKey:@"dayName"]; 
NSString * openDay=[[yourDictionary valueForKey:@"open"] valueForKey:@"dayName"]; 

. 나는 내가 도울 것을 희망한다. 일의 이름을 얻어서

0

enumuration 적용 및 배열 일 추가

NSString * closeDay=[[yourDictionary valueForKey:@"close"] valueForKey:@"dayName"]; 
NSString * openDay=[[yourDictionary valueForKey:@"open"] valueForKey:@"dayName"]; 

NSMutableArray *arr = [[NSMutableArray alloc]init]; 

[arr addObject:openDay]; 
NSMutableArray *finalArray= [[NSMutableArray alloc]init]; 

for(int i=0; i<[givenDic count];i++){ 
NSString *day= [self getDay:arr[i]]; 
NSMutableDictionary *dic= [[NSMutableDictionary alloc]init]; 
[dic setObject:day forKey:@"dayName"]; 
[finalArray addObject:dic]; 
} 

-(NSString*)getDay:(NSString *)dayNo{ 
switch([dayNo intValue]){ 

case 1: 
return Monday; 
break; 

case 2: 
return Tuesday; 
break; 

case 3: 
return Wednesday; 
break; 

case 4: 
return Thursday; 
break; 

case 5: 
return Friday; 
break; 

case 6: 
return Saturday; 
break; 

case 7: 
return Sunday; 
break; 
} 
} 
-1
NSMutableArray *array = [NSMutableArray new]; 
[array addObject:@"1"]; 
[array addObject:@"2"]; 
[array addObject:@"5"]; 
[array addObject:@"4"]; 

NSMutableArray *mainArray = [NSMutableArray new]; 

for(int i=0; i< array.count;i++){ 
    NSMutableDictionary *dict = [NSMutableDictionary new]; 
    switch ([array[i] integerValue]) { 
     case DayOne: 
      [dict setObject:array[i] forKey:@"day"]; 
      [dict setObject:@"your time" forKey:@"time"]; 
      [dict setObject:@"Sunday" forKey:@"dayName"]; 
      break; 
     case DayTwo: 
      [dict setObject:array[i] forKey:@"day"]; 
      [dict setObject:@"your time" forKey:@"time"]; 
      [dict setObject:@"Monday" forKey:@"dayName"]; 
      break; 
     case DayThree: 
      [dict setObject:array[i] forKey:@"day"]; 
      [dict setObject:@"your time" forKey:@"time"]; 
      [dict setObject:@"Tuesday" forKey:@"dayName"]; 
      break; 
     case DayFour: 
      [dict setObject:array[i] forKey:@"day"]; 
      [dict setObject:@"your time" forKey:@"time"]; 
      [dict setObject:@"Wednesday" forKey:@"dayName"]; 
      break; 
     case DayFive: 
      [dict setObject:array[i] forKey:@"day"]; 
      [dict setObject:@"your time" forKey:@"time"]; 
      [dict setObject:@"Thursday" forKey:@"dayName"]; 
      break; 
     case DaySix: 
      [dict setObject:array[i] forKey:@"day"]; 
      [dict setObject:@"your time" forKey:@"time"]; 
      [dict setObject:@"Friday" forKey:@"dayName"]; 
      break; 
     case DaySeven: 
      [dict setObject:array[i] forKey:@"day"]; 
      [dict setObject:@"your time" forKey:@"time"]; 
      [dict setObject:@"Saturday" forKey:@"dayName"]; 
      break; 
     default: 
      break; 
    } 
    [mainArray addObject:dict]; 
} 
NSLog(@"%@",mainArray); 

NS_ENUM (NSInteger, DayString) { DayOne = 1 DayTwo, DayThree, DayFour, 의 typedef DayFive, DaySix, DaySeven };

+0

허,'enum '을 만들었다면, 사람이 읽을 수있는 이름으로 케이스 이름을 붙이지 않으면 어떨까요? 예 : 'DayOne' 대신에'Monday'? 또한, Apple 코딩 가이드 라인에서는 이름 충돌을 피하기 위해'kDayStringMonday','kDayStringTuesday' 등의 이름을 지정해야합니다. – Sulthan

+0

예, 맞습니다. 이해하기 쉽습니다. 열거 형 멤버를 읽을 수 있도록 변경해야합니다. – Pavankumar