Erro de análise JSONKIT
-
13-12-2019 - |
Pergunta
Estou usando uma classe singleton para buscar JSON de um servidor remoto (via NSURLConnection) - tudo parece estar bem, exceto quando tento analisar o JSON usando JSONKit.
Aqui está um código
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[apiData appendData:data];
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
NSLog(@"Connection failed! Error - %@ %@",
[error localizedDescription],
[[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSHTTPURLResponse *realResponse = (NSHTTPURLResponse *)response;
if (realResponse.statusCode == 200)
{
apiData = [[NSMutableData alloc] init];
} else {
NSLog(@"Bad response = %i",realResponse.statusCode);
}
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSString *jsonData = [[NSString alloc] initWithData:apiData encoding:NSUTF8StringEncoding];
NSDictionary *deserializedData = [jsonData objectFromJSONString];
[self.delegate dataLoaded:deserializedData];
}
O erro que recebo está nesta linha
NSDictionary *deserializedData = [jsonData objectFromJSONString];
-[__NSCFString objectFromJSONString]: unrecognized selector sent to instance 0x7fc1cd0
Alguma ideia do que está acontecendo aqui?Esta parece ser a maneira normal de analisar JSON usando JsonKit.
Já me certifiquei de que o JSON é válido... A string foi corrompida de alguma forma durante o acréscimo em didReceiveResponse?
Solução
Descobri...Eu tinha JSONKIt.h incluído no projeto, mas por algum motivo estranho, JSONKit.m não foi incluído em 'Compile Sources' em 'Build Phases' - depois que adicionei manualmente, ele começou a funcionar bem.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow