iOS视图子视图无法识别自定义类成员

时间:2011-11-07 18:46:12

标签: iphone objective-c ios ipad

我是UIView的子类,并且有一个名为imgName的NSString成员; 添加到superview的所有视图都是MyCustomView;

我这样做:

NSArray *arr = [view subviews];

for (int x = 0; x < [arr count]; x++)
{
   MyCustomView *view = [arr objectAtIndex:x];
   NSString *imgName = view.imgName;  <-- Unrecognized selector

}

我真的想要访问该成员。如果我保留了不同的子视图图像名称运行列表,那么这将是有问题的,因为我还必须在视图层次结构中保持它们的位置(因为我希望视图层次结构与zIndexes一样)。

如何从[查看子视图]中获取字符串?

1 个答案:

答案 0 :(得分:3)

您应该仔细检查子视图的类型是否正确。您可以使用以下内容执行该检查:

for ( int x = 0; x < [arr count]; ++x )
{
    UIView *subView = [arr objectAtIndex:x];
    if ( [subView class] == [MyCustomView class] )
    {
        //Perform actions on the view as needed
    }
}

可能存在一个不属于MyCustomView类型的子视图,当它试图转换和访问该成员时,它不能,因为它不是合适的类型。

编辑: 您确实提到您添加的所有子视图都是MyCustomView。我个人不相信iOS结构没有嵌入UIView

的子视图