Передача функции в качестве параметра

Я хочу выполнить поиск в массиве NSDate, вот что я делаю:

searchResult = CFArrayBSearchValues((CFArrayRef)someDateArray, arrayRange, dateToFind, CFDateCompare, nil);

Однако я получаю это предупреждение:

Несовместимые типы указателей, передающие 'CFComparisonResult (CFDateRef, CFDateRef, void )' параметру типа 'CFComparatorFunction' (он же 'CFComparisonResult ()(const void *, const void *, void *)')

Как правильно передать функцию в качестве параметра? Я думаю, что ошибся в синтаксисе.


person Max Yankov    schedule 22.07.2011    source источник


Ответы (1)


Вам нужно привести указатель функции к типу CFComparatorFunction, так как он имеет более явную сигнатуру (он использует CFDateRef вместо void *).

searchResult = CFArrayBSearchValues((CFArrayRef)someDateArray, arrayRange, dateToFind, (CFComparatorFunction)CFDateCompare, nil);
person ughoavgfhw    schedule 22.07.2011