对象数组和 - (NSString *)描述

时间:2013-12-03 10:28:24

标签: ios objective-c arrays object

如何实施- (NSString *)description

我做:

- (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>"
)

非常感谢

3 个答案:

答案 0 :(得分:5)

您需要在自定义DataOrder对象上实现描述。

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

之后只需遍历您的集合并记录对象或只记录数组。

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

答案 1 :(得分:2)

您需要覆盖模型中的描述方法,如下例所示。

员工类:

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

员工的实施:

@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"
)

答案 2 :(得分:1)

我认为你可以这样做:

- (NSString *)description{
    NSMutableString *returningString = [[NSMutableString alloc] init];
    for (DataOrder *elmnt in tableau)
    {
        [returningString appendString:/*a string describing your element*/];
    }
    return returningString
}