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