web-dev-qa-db-fra.com

Xcode 6.1: Plusieurs méthodes nommées 'nombre' trouvées avec un résultat, un type de paramètre ou des attributs incohérents

Je reçois Plusieurs méthodes nommées 'nombre' ont été trouvées avec un résultat, un type de paramètre ou une erreur d'attribut ne correspondant pas lors de la création de l'application. L'application fonctionnait bien en 32 bits. Je l'ai changé à 64 bits selon Apple Guideline . J'ai référé ceci Link mais je n'ai aucune aide. 

J'ai testé l'application sur plusieurs appareils sur simulateur. Cela fonctionne bien sur 32 bits, mais demande une erreur en 64 bits.Pourquoi cela est-il ainsi? 

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

}

Error

18
Jayprakash Dubey

Solution 1: J'avais déclaré compte comme propriété dans un contrôleur de vue . Je l'ai renommé CountValue et le problème a été résolu.

Solution 2: Vous pouvez transtyper le type de données approprié.

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

Cette solution n’était pas réalisable dans mon cas car il y avait des milliers d’endroits contenant [response count].

10
Jayprakash Dubey
if([response count]>0)

response est une id ici, l'erreur suggère qu'il existe plusieurs méthodes appelées count qui renvoient des types différents - int et NSInteger Je pense que sont différentes en 64 bits mais identiques en 32. 

Pour résoudre ce problème, effectuez un casting:

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

Vérifiez votre réponse, existe-t-il une propriété portant le nom compte  

0
PVCS