0

我正在尝试从许多对象中创建一个 JSON 字符串。基本上我这样做是为了将数据库的一部分发送回服务器,以便它可以更新自上次连接以来所做的工作。我希望能够将对象字典转换为 NSData 或 JSON 字符串并将其发送出去,但是当我尝试调用 NSJSONSerialization dataWithJSONObject 时失败了。任何想法如何最好地解决这个问题?我需要分别做这些对象中的每一个吗?即使那样,我将如何处理自定义对象数组。

SchedModel *sched = [self retrieveSchedData]; //custom object
NSArray *event = [self retrieveEvents];  //Array of custom objects
NSDictionary *info = [self retrieveInfo]; //plain old NSDictionary

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];

// Load all objects into a dictionary
[dict setObject: sched forKey:@"sched"];
[dict setObject: event forKey:@"event"];
[dict setObject: info forKey:@"info"];

NSError * error = nil;

//Now create the NSData for this object (THIS FAILS)
NSData * jsonData = [NSJSONSerialization dataWithJSONObject: dict options:NSJSONReadingMutableContainers error:&error];
NSString *JSONString = [[NSString alloc] initWithBytes:[jsonData bytes] length:[jsonData length] encoding:NSUTF8StringEncoding];
4

1 回答 1

0

您不能序列化自定义对象。您必须转换schedNSDictionary序列化之前的。

于 2013-07-19T19:07:13.200 回答