2013-12-03 1 views
-1

Как можно использовать - (NSString *)description ?массив объектов и - (NSString *) описание

Я:

- (NSString *)description{ 
    NSString *descriptionString = [NSString stringWithFormat:@"%@",[self tableau]]; 
    return descriptionString; 
} 

и добавить в мой ViewController

NSLog(@"%@",[[[ArrayBuying instance] tableau] description]); 

Я просто получить:

2013-12-03 10:47:50.323 ApplicationTest2[561:60b] (
    "<DataOrder: 0x156eb090>", 
    "<DataOrder: 0x16926340>" 
) 

Большое спасибо

+0

я думаю, Tableau массив , И вы не нарушили свой объект до базовых значений, таких как int, float, string и т. Д. –

+0

no Я этого не делал, этот массив содержит объекты строк и поплавков –

+0

Что вы хотите получить, назвав 'описание'? –

ответ

2

Вам необходимо переопределить метод описания в вашей модели, как в приведенном ниже примере.

Класс Employee:

@interface Employee : NSObject 
@property (strong) NSString *name; 
@property (assign) float salary; 
-(NSString *)description; 
@end 

Реализация Employee:

@implementation Employee 

-(NSString *)description{ 
    return [NSString stringWithFormat:@"Name: %@, Salary: %f", self.name, self.salary]; 
} 

@end 

Если вы хотите добавить несколько свойств, то вы можете сцепить со строкой ...

Теперь вы можете использовать его как:

Employee *e1 = [Employee new]; 
e1.name = @"one"; 
e1.salary = 20000.; 
Employee *e2 = [Employee new]; 
e2.name = @"two"; 
e2.salary = 45000; 
Employee *e3 = [Employee new]; 
e3.name = @"three"; 
e3.salary = 12000; 

NSArray *array = @[e1, e2, e3]; 

NSLog(@"%@",[array description]); 

Выход:

(
    "Name: one, Salary: 20000.000000", 
    "Name: two, Salary: 45000.000000", 
    "Name: three, Salary: 12000.000000" 
) 
5

Вам необходимо реализовать описание на ваш пользовательский объект DataOrder.

- (NSString *)description { 
    return [NSString stringWithFormat:@"name:%@"]; 
} 

После этого просто пройдите через свою коллекцию и зарегистрируйте объекты или просто зарегистрируйте массив.

NSLog(@"DataOrder:%@", dataOrder); 
+0

tank you Я попробую это и добавлю описание в свой массив –

1

Я думаю, что вы можете сделать что-то вроде этого:

- (NSString *)description{ 
    NSMutableString *returningString = [[NSMutableString alloc] init]; 
    for (DataOrder *elmnt in tableau) 
    { 
     [returningString appendString:/*a string describing your element*/]; 
    } 
    return returningString 
} 
Смежные вопросы