какао - сравнение дат, предупреждение о передаче аргумента один из 'сравнить:' с отличительным типом target-c - PullRequest
1 голос
/ 16 июля 2009

Я просматривал похожие запросы здесь и в других местах, но мне все еще не удается решить мою проблему.

Я пытаюсь увидеть, находится ли дата, хранящаяся в изменяемом словаре в массиве, между двумя другими датами. Часть кода, генерирующая предупреждение:

if ( [[[records objectAtIndex:( i )] objectForKey:@"Date"] compare:userStartDate] == NSOrderedDescending && [[[records objectAtIndex:( i )] objectForKey:@"Date"] compare:userEndDate] == NSOrderedAscending ) {  

В зависимости от ситуации userStartDate создается следующим образом:

- (id)initWithArray:(NSMutableArray *)newRecords andWithUserStartDate:(NSDate *)newUserStartDate andWithUserEndDate:(NSDate *)newUserEndDate {
if (self = [super init]) {
    [self setRecords:newRecords];
    [self setUserStartDate:newUserStartDate];
    [self setUserEndDate:newUserEndDate];
}
return self;

}

Вызывается из другой части кода:

summariser = [[Summariser alloc]initWithArray:records andWithUserStartDate:[userTimesStartDatePicker dateValue] andWithUserEndDate:[userTimesEndDatePicker dateValue]];  

А сама запись как:

[record setObject:[datePicker dateValue] forKey:@"Date"];  

Надеюсь, это понятно и кто-то может помочь.

Спасибо

1 Ответ

0 голосов
/ 16 июля 2009

Я думаю, что проблема в том, что objectForKey: возвращает id, поэтому компилятор не может быть уверен, что это экземпляр NSDate и выдает предупреждение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...