2014-11-06 3 views
2

tableviewcontroller에서이 코드는 현재 dayNumber 순서 인 0부터 6 일의 배열을 가져옵니다.NSCalendar [_NSCopyOnWriteCalendarWrapper 구성 요소 : fromDate :] : 오류

self.dayOrder=[NSMutableArray new]; 

NSCalendar *cal=[NSCalendar currentCalendar]; 

NSInteger dayNumber = [cal component:NSCalendarUnitWeekday fromDate:[NSDate date]]-1; // Sunday gives 0, 

for (int i=0;i<7;i++) { 
    [self.dayOrder addObject:[NSNumber numberWithInteger:dayNumber]]; 
    dayNumber=(dayNumber+1)%7; 
} 

나는이 오류를 얻을이보기 컨트롤러로 이동하면 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_NSCopyOnWriteCalendarWrapper component:fromDate:]: unrecognized selector sent to instance 0x15e4b850'

내가 추가 할 때 모든 예외는 오류가 것 같다이 줄

NSInteger dayNumber = [cal component:NSCalendarUnitWeekday fromDate:[NSDate date]]-1; // Sunday gives 0, 

에서 발생하는되는 포인트 휴식 내 아이폰 6에서 작동하지만 iOS 8에 있지만 iOS7에있는 iPone 4,5c에서는 작동하지 않습니다.

왜 이런 일이 발생하는지 확실하지 않은 이유에 대한 도움은 크게 감사하겠습니다.

도움 주셔서 감사합니다.

답변

16

component:fromDate: 방법이 iOS 8.0에서 NSCalendar에 추가되었습니다.

나이가 아이폰 OS 버전을 지원해야하는 경우

후 이전 components:fromDate: 방법을 사용하고 그 결과 NSDateComponents에서 필요한 값을 추출합니다.

NSDateComponents *components = [cal components:NSCalendarUnitWeekday fromDate:[NSDate date]]; 
NSInteger weekday = [components weekday] - 1; 
+0

좋아 나는이'NSDateComponents * 일 = 그래서 [CAL 구성 요소 : NSCalendarUnitWeekday FROMDATE : [있는 NSDate 날짜]]; '그런 다음 어떻게 그것을 정수로 변환합니까? – iqueqiorio

+0

답변을 업데이트했습니다. – rmaddy