如何实施- (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>"
)
非常感谢
答案 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
}