Iphone 阵列内部打印阵列

Iphone 阵列内部打印阵列,iphone,ios,nsmutablearray,Iphone,Ios,Nsmutablearray,我有一个类构建,其中有一个类成员NSMutableArray*子节点。我声明了另一个存储Building类型元素的array buildingArray。我尝试打印Building类对象,如下面的代码所示。但对于循环,只会先打印。 子节点数组的第二个for循环未执行。这是打印将数组作为其类成员之一的对象的正确方法。 代码: 更改以下代码。我不知道你是什么意思买大楼。所以我只是用id而不是Building来避免任何类型的混淆 for(id b in buildingArray) { NS

我有一个类构建,其中有一个类成员NSMutableArray*子节点。我声明了另一个存储Building类型元素的array buildingArray。我尝试打印Building类对象,如下面的代码所示。但对于循环,只会先打印。 子节点数组的第二个for循环未执行。这是打印将数组作为其类成员之一的对象的正确方法。 代码:


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

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

    for(NSString *str in temp)
    {
        NSLog(@"inside subnode array");
    }
}
希望,这会对你有所帮助

for(Building *b in buildingArray)
{
NSLog(@"inside building array");
NSMutableArray *temp = [NSMutableArray arrayWithArray:b.subnode]
for(id *str in temp)
{
    NSLog(@"inside subnode array");
}
}

这应该行得通。快乐编码:)

您的代码似乎还可以。只需检查阵列(子节点)是否已分配和初始化。还要检查其中是否有一些值。我使用过类似的代码,它对我很有用。

如果这是为了调试目的,我建议尝试以下操作:从
NSObject
继承的每个对象都继承其
描述
方法

将此添加到
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);
NSLog(@"buildingArray == %@", buildingArray);