Для удобства использования я пишу категорию SBJsonParser с именем Addition:
@implementation SBJsonParser(Addition) + (NSDictionary *)parseJson:(NSData *)data { SBJsonParser *parser = [[SBJsonParser alloc] init]; NSDictionary *dict = [parser objectWithData:data]; [parser release]; return dict; } @end
Мои вопросы:
Выглядит хорошо, если вы точно знаете, что данные JSON содержат словарь, а не массив.
Нет и нет. parser является локальным, и больше ничего не нужно, если метод -objectWithData: является синхронным.
parser
-objectWithData:
Да.
Это нормально.Parser - это не статус, это обычная локальная переменная, но, так как вы все равно ее освобождаете, ну и что.Да, парсер должен быть освобожден
1) выглядит отлично
2) это не так. ты не должен.
3) все нормально, как есть
Это выглядит правильно и в целом корректно
Вам не нужно использовать статическое ключевое слово для парсера в этом случае.
Да, вам нужно освободить парсер, и вы 'мы сделали это в правильном месте.