Нужно получить NSObject от DidSelectRow - PullRequest
0 голосов
/ 26 июня 2011

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

NSFetchRequest *request = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Object" inManagedObjectContext:self.managedObjectContext];
    [request setEntity:entity];
    [request setResultType:NSDictionaryResultType];
    [request setReturnsDistinctResults:YES];
    [request setPropertiesToFetch :[NSArray arrayWithObject:@"timeStamp"]];

    NSError *error;
    NSArray *objects = [managedObjectContext executeFetchRequest:request error:&error];
    NSArray *tempData = [objects valueForKey:@"timeStamp"];

    NSMutableArray * data1 = [NSMutableArray array];
    NSCalendar * gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
    [gregorian setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
    NSUInteger flags = ( NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit );
    NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease];
    [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss Z"];
    [formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];

    [tempData enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        NSDate * date = [gregorian dateFromComponents:[gregorian components:flags fromDate:obj]];
        [data1 addObject:[formatter stringFromDate:date]];
    }];
    self.data = data1;

Когда я выбираю дату в календаре, у меня есть следующий код, который будет переходить к следующему подробному представлению

- (void)calendarMonthView:(TKCalendarMonthView *)monthView didSelectDate:(NSDate *)d { 
// Assuming `data` is from the code above & the date is in `00:00:00 +0000` form.

NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];

NSString * dateString = [formatter stringFromDate:d];

if ( [data containsObject:dateString] ) {
    // Push object to detail view??
}

}

Мой вопрос: как я могу получить объект, который был возвращен, для которого свойство timeStamp является выбранной датой?Я хочу получить толчок Object к следующему представлению, для которого свойство timeStamp является датой, выбранной мной из календаря, которая загружается из массива запроса на выборку, который я разместил выше.

1 Ответ

0 голосов
/ 27 июня 2011

Вам потребуется использовать экземпляр NSPredicate для получения определенных данных.Вам нужно будет добавить это в if пункте выше,

if ( [data containsObject:dateString] ) {
    NSDate * searchDate = [formatter dateFromString:dateString];
    NSPredicate * predicate = [NSPredicate predicateWithFormat:@" timeStamp == %@ ", searchDate];

    /* Create a fetch request with the predicate above and get the results from the MOC */
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...