2016-09-30 5 views
2

Я пытаюсь извлечь изображения из библиотеки фотографий в пределах двух дат и I am getting the images successfully. Использование PHAsset БиблиотекаPHFetchResults дата фильтр не генерирует правильные результаты для диапазона времени

Теперь проблема заключается в том, что я не в состоянии получить изображения между двумя раз одного и того же дня, как между 12:10 до 12:30

Использование ниже кода

NSDate *startDate = [self getDateForDay:30 andMonth:9 andYear:2016 andHour:12 andMinute:10 andSecond:0]; 
    NSDate *endDate = [self getDateForDay:30 andMonth:9 andYear:2016 andHour:12 andMinute:30 andSecond:0]; 

-

-(NSDate*) getDateForDay:(NSInteger) day andMonth:(NSInteger) month andYear:(NSInteger) year andHour:(NSInteger) hour andMinute:(NSInteger) minute andSecond:(NSInteger) second{ 
NSDateComponents *comps = [[NSDateComponents alloc] init]; 
[comps setDay:day]; 
[comps setMonth:month]; 
[comps setYear:year]; 

[comps setHour:hour]; 
[comps setMinute:minute]; 
[comps setSecond:second]; 
NSCalendar* gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; 
[gregorian setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; 

NSDate *date = [gregorian dateFromComponents:comps]; 
return date; 
} 

- И, проходя эти даты ниже метод, чтобы получить изображения

PHFetchResult *result = [self getAssetsFromLibraryWithStartDate:startDate andEndDate:endDate]; 

Даты и время, прибывая правильно, когда я печатать в журнале, но не получать изображения

Как решить эту проблему?

+1

Правильно ли вы установили часовой пояс? Дата, созданная здесь, будет в часовом поясе UTC, и ваш может отличаться. Убедитесь, что вы установили часовой пояс календаря, например '[calendar setTimeZone: [NSTimeZone systemTimeZone]];' перед созданием даты из него – NSNoob

+1

А также убедитесь, что у вас есть изображения в библиотеке, которые существуют в пределах диапазона времени – NSNoob

+0

Проверьте мой отредактированный вопрос ... у меня есть изображения, которые точно –

ответ

1

Дата создания здесь будет в часовой пояс UTC, и ваш может отличаться. Вот почему предикат не может вернуть вам правильные результаты.

Убедитесь, что вы установили часовой пояс календаря для вашей системы временной зоны до создания даты из него нравится:

NSCalendar* gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; 
[gregorian setTimeZone: [NSTimeZone systemTimeZone]]; 
NSDate *date = [gregorian dateFromComponents:comps]; 

Это создаст дату в локальном часовом поясе и генерировать правильные результаты.

+2

Ya получил это ... Большое спасибо @NSNoob за вашу помощь в хет-трике, а также моя задача завершилась приветствиями :-) –