Errore di costruzione afnetworking: "La dichiarazione della classe anonima deve essere una definizione"
-
29-10-2019 - |
Domanda
Sto iniziando con l'afnetworking per sostituire il triste-defunto Asihttprequest.Le persone sembrano amare questo nuovo "afnetworking" ma non costruisce nel mio progetto e non riesco a capire perché.Sto ricevendo errori di costruzione a partire da Class class = NSClassFromString(className);
in HTTPRequestOperationWithRequest:success:failure
nel file AFHTTPClient.m
.
L'errore è "La dichiarazione della classe anonima deve essere una definizione" e ho chiesto a teH Google ma non ottenuto nulla.Aiuto?
Contesto:
- (AFHTTPRequestOperation *)HTTPRequestOperationWithRequest:(NSURLRequest *)urlRequest
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
{
AFHTTPRequestOperation *operation = nil;
NSString *className = nil;
NSEnumerator *enumerator = [self.registeredHTTPOperationClassNames reverseObjectEnumerator];
while (!operation && (className = [enumerator nextObject])) {
Class class = NSClassFromString(className);
if (class && [class canProcessRequest:urlRequest]) {
operation = [[(AFHTTPRequestOperation *)[class alloc] initWithRequest:urlRequest] autorelease];
}
}
.
Modifica: Risolto per risposta qui sotto.File patch qui .
Modifica 2: Queste modifiche sono state tirate nel più recente AFNetworking, quindi chiunque lo trovi in futuro: Basta scaricare una versione fresca e sei tutti impostati. Inoltre, come va il futuro?Ciao futuro.
Soluzione
Sono stato in grado di aggirare l'errore del compilatore rinominando la variabile "classe" a qualcos'altro.Sfortunatamente, non sono stato in grado di capire perché ho avuto il problema.Ecco un indizio: mi è successo quando ho aggiunto Afnetworking a un grande progetto esistente con bandiere di compilatore sconosciute.Quando ho aggiunto Afnetworking a un nuovo progetto nuovo, non ho colpito il problema.