2016-01-10 5 views
0

Я получаю запрос на сервер, что для получения данных в формате JSON как:Где хранить ответ от сервера в iOS?

{ 
name: 'http://placehold.it/32x32', 
age: '20', 
social: { 
    id: '1', 
    count: '3', 
    shares: '3' 
} 
} 

Что это лучший способ для хранения этих данных в переменной, после того, как показать его в TableView? Должен ли я создать @property для каждого ключа JSON? Или создать один объект как NSDictionary?

+2

первый, создать CustomClass (или структуры) со свойствами для имени, возраста и социального (который сам может быть другим классом или структурой) – luk2302

ответ

0

Я бы создал класс/структуру с этими свойствами как можно раньше. Что-то вроде этого:

СВИФТ

class myClass { 

    var name: String? 
    var age: Int? 
    var id: Int? 
    var count: Int? 
    var shares: Int? 

    init(dictionary: [String:AnyObject]) { 
     name = dictionary["name"] as? String 
     age = dictionary["age"] as? Int 

     if let social = dictionary["social"] as? [String:AnyObject] { 
      id = social["id"] as? Int 
      count = social["count"] as? Int 
      shares = social["shares"] as? Int 
     } 
    } 
} 

Затем, когда вы получите данные обратно вы можете создать свой объект, как это.

let myObject = myClass(dictionary: jsonDictionary) 

Это по существу то же самое для Objective-C:

Objective-C

@property (nonatomic) NSString *name; 
@property (nonatomic) NSInteger age; 
@property (nonatomic) NSInteger socialID; 
@property (nonatomic) NSInteger count; 
@property (nonatomic) NSInteger shares; 

- (instancetype)initWithDictionary:(NSDictionary *)dictionary { 
    if ((self = [self init])) { 
     _name = dictionary[@"name"] 
     _age = [[dictionary valueForKey:@"age"] integerValue] 

     NSDictionary *social = dictionary[@"social"] 
     _socialID = [[social valueForKey:@"id"] integerValue] 
     _count = [[social valueForKey:@"count"] integerValue] 
     _shares = [[social valueForKey:@"shares"] integerValue] 
    } 
} 
+0

Когда вопрос помечен определенным языком, вы должны опубликовать код на этом языке. – rmaddy

Смежные вопросы