2015-01-02 13 views
18

Ich bekomme Mehrere Methoden namens 'count' gefunden mit nicht übereinstimmenden Ergebnis, Parametertyp oder Attribute Fehler beim Erstellen App. Die App funktionierte gut in 32 Bit. Ich habe es auf 64 Bit gemäß Apple guideline geändert. Ich habe diese Link verwiesen, aber habe keine Hilfe.Xcode 6.1: Mehrere Methoden mit dem Namen 'count' gefunden mit nicht übereinstimmenden Ergebnis, Parametertyp oder Attribute

Ich habe App auf mehreren Geräten im Simulator getestet. Es funktioniert gut bei 32 Bit, aber Fehler in 64 Bit. Warum ist das so?

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

} 

Error

+0

Versuchen Antwort auf NSArray zu werfen, bevor „count“ aufrufen. –

Antwort

9

Lösung 1: I zählen als Eigenschaft in einem View-Controller erklärt hatte. Ich habe es in CountValue umbenannt und das Problem wurde gelöst.

Lösung 2: Sie können den entsprechenden Datentyp eingeben.

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

Diese Lösung war in meinem Fall nicht möglich, da es 1000s Ort [response count] enthalten war.

22
if([response count]>0) 

response ist ein id hier der Fehler deutet darauf hin, gibt es mehrere Methoden count genannt, die verschiedene Arten zurückgeben - int und NSInteger Ich denke, andere sind in 64-Bit, aber das gleiche in 32.

Um zu reparieren, führen Sie einen Guss:

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

Es ist nicht machbar für Casting, da es rund 1000s Orte sind, die geändert werden müssen ... Jede andere Lösung –

+1

Tausende von Orten? Ihre Alternative besteht darin, die andere Zählmethode zu finden (vermutlich in Ihrem Code) und den Rückgabetyp zu ändern. Aber wenn Sie Tausende von ID-Objekten haben, die Sie zählen, klingt das falsch. – jrturton

0

Überprüfen Sie Ihre Antwort, gibt es eine Eigenschaft mit dem Namen Zählung

+0

wenn es das Problem hat? –