0

我有一个类 Building,其中我有一个类成员 NSMutableArray *subnode。我已经声明了另一个数组 buildingArray,它存储了 Building 类型的元素。我试图打印 Building 类对象,如下面的代码所示。但只进入第一个环形。子节点数组的第二个 for 循环未执行。这是打印将数组作为其类成员之一的对象的正确方法吗?代码:

    for(Building *b in buildingArray)
{
    NSLog(@"inside building array");
    for(NSString *str in b.subnode)
    {
        NSLog(@"inside subnode array");
    }
}
4

4 回答 4

0

你的代码似乎没问题。只需检查数组(子节点)是否已分配和初始化。还要检查它是否有一些值。我使用了类似的代码,它对我有用。

于 2012-05-10T06:59:27.383 回答
0

更改以下代码。我不知道你是什么意思买Building。所以我只是使用id而不是Building避免任何类型的混淆。

for(id b  in buildingArray)
{
    NSLog(@"inside building array");
    NSArray *temp = b;

    for(NSString *str in temp)
    {
        NSLog(@"inside subnode array");
    }
}

希望对你有帮助;

于 2012-05-10T05:26:05.463 回答
0

如果这是出于调试目的,我建议尝试以下方法:从继承的每个对象都NSObject继承其description方法。

将此添加到Building.m

@implementation Building

- (NSString *)description {
    NSMutableString *description = [NSMutableString stringWithString:[super description]];
    // add the following lines for any relevant properties
    // [description appendFormat:@", materials == %@", materials];
    // then have the subnode print itself:
    [description appendFormat:@", subnode == %@", subnode];
    return description;
}

@end

buildingArray然后,您只需调用以下代码即可打印整个内容:

NSLog(@"buildingArray == %@", buildingArray);
于 2012-05-10T08:34:54.237 回答
0
for(Building *b in buildingArray)
{
NSLog(@"inside building array");
NSMutableArray *temp = [NSMutableArray arrayWithArray:b.subnode]
for(id *str in temp)
{
    NSLog(@"inside subnode array");
}
}

这应该有效。快乐编码:)

于 2012-05-10T05:45:14.940 回答