当我获得子视图索引时出现问题

时间:2011-03-15 13:06:53

标签: iphone uiview xib

当我获得子视图索引时出现问题。

int index = [[YourUIView subviews] indexOfObject:YourUIButton];

使用xib文件创建了一些UITextField。当我打印它的值时,我得到虚幻的索引。  @property(nonatomic,retain)IBOutlet UITextField * distanceTextField;例如:index等于2147483647

但是当我以编程方式添加对象时,我得到真正的索引。 index等于12.为什么?

2 个答案:

答案 0 :(得分:8)

每次使用框架方法搜索某个索引(或范围)时,请根据NSNotFound常量检查其结果。在你的平台上,NSNotFound碰巧是2147483647.这解决了虚幻指数的神秘面纱。

int index = [parentView.subviews indexOfObject:importantButton];
if (index != NSNotFound) {
  // found it
} else {
  // no luck
}

至于为什么找不到你的视图的问题 - 检查每个插座在执行此搜索时是否实际指向某个视图。

<强>更新

您可以检查插座是使用调试器设置还是通过记录

    NSLog(@"myView - %@", myView);

答案 1 :(得分:2)

最有可能的是,索引为NSNotFound,与NSIntegerMax或2147483647相同,告诉您未找到对象的索引。

尝试在Interface Builder中手动设置对象的索引并搜索它。