如何使用NSLog显示对象数组

时间:2013-12-02 12:23:23

标签: ios objective-c arrays object

使用" NSLog"显示对象数组的解决方案是什么?

我可以用我的TableView显示它:

- (UITableViewCell *)tableView:(UITableView *)tableView
             cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        UITableViewCell *cell = [tableView
                                 dequeueReusableCellWithIdentifier:@"MyBasicCell2"];
        DataOrder *bug = [[[ArrayBuying instance] tableau] objectAtIndex:indexPath.row];
      static NSString *CellIdentifier = @"MyBasicCell2";
        CustomCellFinalView *Cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];


        if (!Cell) {
            Cell = [[CustomCellFinalView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        }

        Cell.NomProduit.text = bug.product;
        Cell.Quantite.text = [NSString stringWithFormat:@"%.2f €", bug.price];
        Cell.Prix.text = [NSString stringWithFormat:@"X %d  ", bug.quantite];

        return Cell;
        return cell;    
}

当我尝试使用ViewDidLoad:方法时

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

我在目标输出中获得:

(
    "<DataOrder: 0x15d5d980>",
    "<DataOrder: 0x15de1aa0>"
)

非常感谢你的未来帮助

4 个答案:

答案 0 :(得分:9)

您可以在DataOrder类中实现- (NSString *)description方法。

如果描述可用,NSLog将显示实例的描述方法的返回值。

查看NSObject协议https://developer.apple.com/library/mac/documentation/cocoa/reference/foundation/Protocols/NSObject_Protocol/Reference/NSObject.html

的文件

通过实现描述方法,您可以更轻松地打印对象。

答案 1 :(得分:5)

试试这个

for ( DataOrder *bug in [[ArrayBuying instance] tableau] ) 
{
    NSLog(@"Product:- %@ Price:-%@", bug.product, bug.price);
}

答案 2 :(得分:1)

在DataOrder类中编写- (NSString*) description方法。

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

 NSLog(@"%@",[[[ArrayBuying instance] tableau] descriptionWithLocale:nil indent:1]);

答案 3 :(得分:1)

NSLog调用对象的description方法进行打印。如果你没有为你的类实现这个方法(在这种情况下是DataOrder),它将调用NSObject's默认实现,它只打印对象的地址。