Предупреждение о бинарном поиске в CFArrayBSearchValues - PullRequest
0 голосов
/ 28 марта 2011

Я использую CFArrayBSearchValues.

Ссылка: http://developer.apple.com/library/mac/documentation/CoreFoundation/Reference/CFArrayRef/Reference/reference.html#//apple_ref/doc/uid/20001192-CH201-F10956

Работает успешно, но компилятор показывает предупреждение по первому параметру:

CFIndex indexResult = CFArrayBSearchValues( 
                         m_Locations, 
                         CFRangeMake(0, [m_Locations count]), 
                         data, 
                         PGPlaceDataCompare, nil);

enter image description here

CFArrayBSearch ожидаем в качестве первого параметра CFArrayRef.
Мой m_Locations - это NSMutableArray.

Как разрешить это предупреждение? Мне нужно сделать любое приведение к NSMutableArray в CFArrayRef?

спасибо.

1 Ответ

2 голосов
/ 28 марта 2011

Да. Просто приведите NSMutableArray к CFArrayRef.

CFIndex indexResult = CFArrayBSearchValues( 
                         (CFArrayRef)m_Locations, 
                         CFRangeMake(0, [m_Locations count]), 
                         data, 
                         PGPlaceDataCompare, NULL);

В iOS 4.0 или более поздней версии вы можете использовать Objective-C метод -indexOfObject:inSortedRange:options:usingComparator:.

 NSUInteger indexResult = [m_Locations
                            indexOfObject:data
                            inSortedRange:NSMakeRange(0, [m_Locations count])
                                  options:0
                          usingComparator:^(id a, id b) { ... }];
...