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 が有効であることは既に確認済みです。

4

1 に答える 1

8

それを理解しました...プロジェクトにJSONKIt.hが含まれていましたが、奇妙な理由で、JSONKit.mは「ビルドフェーズ」の下の「コンパイルソース」に含まれていませんでした-手動で追加すると、正常に動作し始めました。

于 2012-08-01T18:34:09.090 に答える