json-framework: EXC_BAD_ACCESS для stringWithObject - PullRequest
2 голосов
/ 07 января 2010

UPDATE:

Я обнаружил, что причиной предыдущей ошибки была ошибка в документации.

Метод должен называться proxyForJson, а не jsonProxyObject ...

Но я все еще застрял.

Теперь я получаю ошибку EXC_BAD_ACCESS внутри stringWithObject some where. Есть какие-нибудь подсказки?


ОБНОВЛЕНИЕ 2:

Моя реализация proxyForJson является тогдашней документацией:

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

Попытка заставить сериализацию json работать для моего пользовательского класса target-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];

Но все, что я получаю, это следующая ошибка:

"Сериализация JSON не поддерживается для MyObject"

Полагаю, jsonWriter по какой-то причине не может найти мой метод jsonProxyObject, зачем покупать?

Привет.

Ответы [ 3 ]

0 голосов
/ 18 апреля 2010

Я не уверен, что это правильно, но определение класса следующим образом решает проблему:

@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];
0 голосов
/ 29 июня 2012

В NSString нет метода stringWithObject:. Вместо этого вы должны попробовать stringWithFormat:.

0 голосов
/ 08 января 2010

Вы пытались включить NSZombies и MallocStackLogging в панели информации исполняемого файла, чтобы проверить источник EXC_BAD_ACCESS? Если нет, вы можете попробовать это и проверить консоль на вывод. EXC_BAD_ACCESS часто является ошибкой, вызванной чрезмерным освобождением объекта где-либо.

...