0

我正在使用单例类从远程服务器(通过 NSURLConnection)获取 JSON - 一切似乎都很好,除非我尝试使用 JSONKit 解析 JSON。

这是一些代码

-(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]; 
}

我得到的错误是在这一行

 NSDictionary *deserializedData = [jsonData objectFromJSONString];

-[__NSCFString objectFromJSONString]: unrecognized selector sent to instance 0x7fc1cd0

有什么想法吗?这似乎是使用 JsonKit 解析 JSON 的正常方式。

我已经确定 JSON 是有效的......在附加到 didReceiveResponse 期间字符串是否以某种方式损坏?

4

1 回答 1

8

想通了...我在项目中包含了 JSONKIt.h,但由于某些奇怪的原因,JSONKit.m 未包含在“构建阶段”下的“编译源”中 - 一旦我手动添加它,它就开始正常工作。

于 2012-08-01T18:34:09.090 回答