2

更新:

我发现上一个错误的原因是文档中的错误。

该方法应该命名为proxyForJson,而不是jsonProxyObject...

但是我仍然被困住了。

我现在在 stringWithObject 的某个地方得到一个 EXC_BAD_ACCESS 错误。有什么线索吗?


更新 2:

我的 proxyForJson 实现是从当时的文档中剪切并粘贴:

- (id)proxyForJson {
    return [NSDictionary dictionaryWithObjectsAndKeys:
            Navn, @"Navn",
            Adresse, @"Adresse",
            Alder, @"Alder",
            nil];
}

试图使 json 序列化适用于我的自定义 Objective-C 类。

据我了解文档, json-framework 可以序列化自定义对象,如果它们实现jsonProxyObject方法。

所以我有这个类:

@interface MyObject : NSObject {
    NSString *Name;
    NSString *Addresse;
    NSInteger Age;
}
@property (nonatomic, retain) NSString *Name;
@property (nonatomic, retain) NSString *Addresse;
@property (nonatomic, assign) NSInteger Age;
- (id)jsonProxyObject;
@end

我尝试序列化一个包含一些实例的数组:

[json stringWithObject:list error:&error];

但我得到的只是他以下错误:

“MyObject 不支持 JSON 序列化”

我猜 jsonWriter 出于某种原因找不到我的 jsonProxyObject 方法,购买为什么?

问候。

4

3 回答 3

0

在 NSString 中,没有stringWithObject:方法。您应该尝试stringWithFormat:改用。

于 2012-06-29T14:05:54.830 回答
0

我不确定这是否是正确的做法,但定义类如下,可以解决问题:

@interface MyObject : NSObject {
    NSString *Name;
    NSString *Addresse;
    NSInteger *Age;
}

@property (nonatomic, retain) NSString *Name;
@property (nonatomic, retain) NSString *Addresse;
@property (nonatomic, retain) NSInteger *Age;

- (id)jsonProxyObject;

@end

然后将变量初始化为:

Age = [[NSNumber alloc] initWithInt:32];
于 2010-04-18T08:27:39.420 回答
0

您是否尝试在 Executable Info 窗格中打开 NSZombies 和 MallocStackLogging 以检查 EXC_BAD_ACCESS 的来源?如果没有,你可以试试这个并检查控制台的输出。EXC_BAD_ACCESS 通常是由于在某处过度释放对象而导致的错误。

于 2010-01-07T21:10:50.667 回答