Передача функции в качестве параметра - PullRequest
0 голосов
/ 23 июля 2011

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

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

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

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

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

1 Ответ

4 голосов
/ 23 июля 2011

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

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