当我获得子视图索引时出现问题。
int index = [[YourUIView subviews] indexOfObject:YourUIButton];
使用xib文件创建了一些UITextField。当我打印它的值时,我得到虚幻的索引。 @property(nonatomic,retain)IBOutlet UITextField * distanceTextField;例如:index等于2147483647
但是当我以编程方式添加对象时,我得到真正的索引。 index等于12.为什么?
答案 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中手动设置对象的索引并搜索它。