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];
}
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]
.
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)
Vérifiez votre réponse, existe-t-il une propriété portant le nom compte