1

これはこれに対するフォローアップの質問 です。要するに、私は自分のアプリをios 4.3互換にし、AFNetworking自分のアプリでios4をサポートするクラスバージョン0.10.1を使用しています。この行self.responseJSON = AFJSONDecode(self.responseData, &error);は私に以下のエラーを与えます。私はジェイソンにあまり詳しくなく、このエラーが何を意味するのかを理解しようとしています。

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** - [JKDictionary allocWithZone:]: The JKDictionary class is private to JSONKit and should not be used in this fashion.'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x006ef5a9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x018e6313 objc_exception_throw + 44
    2   CoreFoundation                      0x006a7ef8 +[NSException raise:format:arguments:] + 136
    3   CoreFoundation                      0x006a7e6a +[NSException raise:format:] + 58
...
...
26  libdispatch_sim.dylib               0x02888289 _dispatch_call_block_and_release + 16
27  libdispatch_sim.dylib               0x0288acb4 _dispatch_queue_drain + 250
28  libdispatch_sim.dylib               0x0288b2c2 _dispatch_queue_invoke + 49
29  libdispatch_sim.dylib               0x0288b593 _dispatch_worker_thread2 + 261
30  libsystem_c.dylib                   0x90093b24 _pthread_wqthread + 346
31  libsystem_c.dylib                   0x900956fe start_wqthread + 30

エラーはJSONKit.mからのものです:

+ (id)allocWithZone:(NSZone *)zone
{
#pragma unused(zone)
    [NSException raise:NSInvalidArgumentException format:@"*** - [%@ %@]: The %@ class is private to JSONKit and should not be used in this fashion.", NSStringFromClass([self class]), NSStringFromSelector(_cmd), NSStringFromClass([self class])];
    return(NULL);
}

iOS 5では、アプリはうまく機能する回線を使用していますが、サポートさself.responseJSON =[NSJSONSerialization JSONObjectWithData:self.responseData options:0 error:&error];れていないため、もちろんiOS4ではこれを使用できません。NSJSONSerialization

どんな種類の助けもいただければ幸いです。

4

1 に答える 1

0

問題のある行をこれに置き換えることになりましたself.responseJSON = [[CJSONDeserializer deserializer] deserialize:self.responseData error:&error];

その行だけに別のクラス(TouchJSON )を使用しましたが、現在はうまく機能しています。

于 2013-01-14T07:16:19.270 に答える