Xcode 6.1: Множество методов с именем "count" найдено с несогласованным результатом, типом параметра или атрибутами

Я получаю Несколько методов с именем "count", найденные с ошибкой, результатом типа параметра или атрибута при создании приложения. Приложение отлично работало в 32 бит. Я изменил его на 64 бит согласно руководство Apple. Я ссылался на эту ссылку , но не получил никакой помощи.

Я тестировал приложение на нескольких устройствах на симуляторе. Он отлично работает на 32 бит, но запрашивает ошибку в 64 бит. Почему это так?

 -(void)serviceSuccessFulForPatientSelect:(id)response
{
    [self hideOverlay];
    if([response isKindOfClass:[NSArray class]])
    {
        if([response count]>0)
        {
            if(1)
            {
               ...
            }
        }
    }
    [refillDetailTable reloadData];

}

Error

Ответы

Ответ 1

Решение 1: Я объявил count как свойство в контроллере представления. Я переименовал его в CountValue, и проблема была решена.

Решение 2: Вы можете ввести тип в соответствующий тип данных.

if([(NSArray *) response count]>0) {
  ...
}

Это решение было невозможно в моем случае, так как было 1000 мест, содержащих [response count].

Ответ 2

if([response count]>0)

response здесь id, ошибка предполагает наличие нескольких методов под названием count, которые возвращают разные типы - int и NSInteger Я думаю, что разные в 64-битном, но то же самое в 32.

Чтобы исправить, выполните бросок:

if([(NSArray*)response count]>0)

Ответ 3

Дважды проверьте свой ответ, есть ли какое-либо свойство с именем count