1

xcode で json を使用するこのメソッドには、この問題があります (私の xcode バージョンは 5 です)。
これは、エラーのあるステートメントです。

NSDictionary * dict = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error];

エラー: 宣言されていない識別子 ' CJSONDeserializer' が使用されています。しかし、私はすでにプロジェクトでこのクラスを宣言しているので、何ができますか???

この問題を早急に解決する必要があるので、助けてください。

これがすべての方法です。

- (void) viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    NSURL *url = [NSURL URLWithString:@"http://localhost:8888/json.php"]; // Modify this             to match your url.

    NSString *jsonreturn = [[NSString alloc] initWithContentsOfURL:url]; // Pulls the URL
    NSLog(jsonreturn); // Look at the console and you can see what the restults are

    NSData *jsonData = [jsonreturn dataUsingEncoding:NSUTF32BigEndianStringEncoding];
    NSError *error = nil;

    // In "real" code you should surround this with try and catch
    @try {
        NSDictionary * dict = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error];
        if (dict)
        {
            rows = [[dict objectForKey:@"user"] retain];
        }

        NSLog(@"Array: %@",rows);

        [jsonreturn release];
    }
}
4

1 に答える 1

0

これはTouchJSONライブラリの一部です。そのライブラリがプロジェクトに含まれていることを確認する必要があります。また、.m ファイルの先頭に適切なヘッダーをインポートしたことを確認してください。

#import "CJSONDeserializer.h"

または、組み込みの を使用するようにコードを変更しますNSJSONSerialization。たとえば、次の行を置き換えます。

NSDictionary * dict = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error];

次のように述べています。

NSDictionary * dict = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
于 2013-10-10T12:54:43.353 に答える