2014-03-18 8 views
1

Мне нужно получить большой объем данных из веб-службы, он имеет формат JSON. поэтому я создал класс NSObject, чтобы назначить свойства каждого объекта. Im думая, чтобы получить, что JSON данные в NSMutableArray, а затем с помощью для loop.After использования этих новых массив объектов Я хочу, чтобы заполнить UITableViewКак создать класс NSObject в iOS

`

for(int i=0;i<[matubleArray count];i++) 
{ 
    //create a new instance from the class 
    //assign each values from mutable array to new object's properties 
    //add that new object to another mutable array. 

} 

для того, чтобы сделать это, я не» t знать, как создать этот класс экземпляра. Должна ли она быть одиночной? Если это не singleton, как создать этот класс.

Thanks

ответ

6

Нет, это не должно быть одноэлементное. Вы должны создать свой NSObject -derived класса, как и любой другой объект:

MyCustomClass *myClass = [MyCustomClass new]; 

, а затем начать заполнение его (через @property аксессор) из данных в формате JSON (это предполагает, что массив словаря объектов, что не редкость):

for (unsigned i = 0; i < [jsonData count]; i++) 
{ 
    MyCustomClass *myClass = [MyCustomClass new]; 
    NSDictionary *dict = [jsonData objectAtIndex:i]; 
    myClass.name = [dict objectForValue:@"Name"]; 
    myClass.age = [[dict objectForValue:"@"Age"] unsignedValue]; 
    [someOtherArray addObject:myClass]; 
} 

Таким образом, ваш пользовательский класс может быть столь же просто, как:

@interface MyCustomClass : NSObject 

@property (strong, nonatomic) NSString *name; 
@property (assign, nonatomic) unsigned age; 

@end 

, конечно, все становится интересно, когда проведение более комп Лекс объекты, такие как даты, и вы должны использовать NSDate объект для проведения этих и обеспечить способ преобразования строк в-день:

@interface MyCustomClass : NSObject 

@property (strong, nonatomic) NSString *name; 
@property (strong, nonatomic) NSDate *dateOfBirth; 

- (void)setDateOfBirthFromString:(NSString *)str; 

@end 

С помощью метода преобразования что-то вроде этого:

- (void)setDateOfBirthFromString:(NSString *)str { 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"yyyy-MM-dd"]; 
    self.dateOfBirth = [dateFormat dateFromString:str]; 
} 
Смежные вопросы