我有类构建,其中我有一个类成员NSMutableArray * subnode.I已经声明了另一个数组buildingArray,它存储了Building.I类型的元素。我试图打印Building类对象,如下面的代码所示。但是进入只有第一次循环。 第二个子节点数组的循环没有执行。这是打印具有数组作为其类成员之一的对象的正确方法。 代码:
for(Building *b in buildingArray)
{
NSLog(@"inside building array");
for(NSString *str in b.subnode)
{
NSLog(@"inside subnode array");
}
}
答案 0 :(得分: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");
}
}
希望,这会对你有帮助;
答案 1 :(得分: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");
}
}
这应该有效。快乐的编码:)
答案 2 :(得分:0)
您的代码似乎没问题。只需检查是否已分配和初始化数组(子节点)。还要检查它是否有一些值。我使用了类似的代码,它适用于我。
答案 3 :(得分: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);