iOS-返回null的可编辑子视图(文本视图、标签等)

iOS-返回null的可编辑子视图(文本视图、标签等),ios,ipad,uitextfield,exc-bad-access,Ios,Ipad,Uitextfield,Exc Bad Access,我已经编写了一个基本的应用程序,将一些文本视图放到外部屏幕上。然后,用户可以键入要在这些视图中显示的消息,并决定哪些消息是可编辑的,等等 但是,每当我运行检查视图是否可编辑时,它总是返回null 代码如下: UITextView *lbl = (UITextView *) [view.subviews objectAtIndex:outputCount]; 如果我没有将lbl强制转换为UITextView,则在运行时会得到null: if(lbl.editable) 如果我真

我已经编写了一个基本的应用程序,将一些文本视图放到外部屏幕上。然后,用户可以键入要在这些视图中显示的消息,并决定哪些消息是可编辑的,等等

但是,每当我运行检查视图是否可编辑时,它总是返回null

代码如下:

        UITextView *lbl = (UITextView *) [view.subviews objectAtIndex:outputCount];
如果我没有将lbl强制转换为UITextView,则在运行时会得到null:

if(lbl.editable)
如果我真的投了,我会得到一个EXC_BAD_访问权限,有人知道会出现什么错误吗

干杯,伙计们

编辑:我一直在玩弄它,我相信错误的访问是因为它返回null,因此if失败。我可以很好地打印出来。但是,可编辑值怎么可以为空?这肯定是真是假。如果我将视图加载到iPad上,并触摸一个可编辑字段设置为false的textview,它就知道了。那么它是在哪里发现的呢


谢谢

您的代码片段没有指定
outputCount
的来源,但看起来这可能就是问题所在。例如,如果您的视图有4个子视图,并且您尝试引用
objectAtIndex:4
,则会得到一个空值。也许您的代码应该改为
[view.subviews objectAtIndex:[outputCount-1]]
。同样,您的代码中不清楚
outputCount
来自何处。

您的代码片段没有指定
outputCount
来自何处,但看起来这可能是问题所在。例如,如果您的视图有4个子视图,并且您尝试引用
objectAtIndex:4
,则会得到一个空值。也许您的代码应该改为
[view.subviews objectAtIndex:[outputCount-1]]
。同样,不清楚您的代码中的
outputCount
来自何处。

因此,我将代码更改为使用UILabel,并将if设置为检查:

if(lbl.enabled == YES)
这看起来像是在做梦,但现在我需要阻止球场在没有启用的情况下变灰,我相信在这一天结束之前我会在这里问这个问题


谢谢你们的帮助

因此,我将代码更改为使用UILabel,并将if设置为检查:

if(lbl.enabled == YES)
这看起来像是在做梦,但现在我需要阻止球场在没有启用的情况下变灰,我相信在这一天结束之前我会在这里问这个问题


谢谢你们的帮助

抱歉,输出计数是在之前设置的,如果outputcount大于子视图数,则将其设置为零。对不起,完全忘了澄清!您可能已经涵盖了这一点,但是您需要outputCount不大于子视图数减去1。抱歉,outputCount在之前已设置,如果outputCount大于子视图数,则将其设置为零。对不起,完全忘了澄清!您可能已经涵盖了这一点,但需要outputCount不大于子视图数减去1。为什么要使用子视图数组中的特定项而不是插座?我只使用Interface Builder的插座,并且该视图是通过编程方式创建的,这样行吗?如果是,如何创建?如果在代码中创建视图,最好为以后需要引用的每个子视图保留一个实例变量。我怀疑这里发生的事情是,子视图数组不包含您认为它包含的内容。对不起,我不工作,因为一次有多个视图。另外,从数组中访问变量应该是相同的,对吗?至少应该将文本字段保留在单独的数组中。我的观点是,子视图数组不一定是最佳位置-例如,当显示键盘时,框架是否刚刚添加了另一个子视图?我一点也不知道,但这似乎是可能的。为什么不在调用上面的代码之前记录子视图数组的内容并查看其中的内容?为什么要使用子视图数组中的特定项而不是插座?我只使用Interface Builder的插座,并且视图是通过编程创建的,这样行吗?如果是,如何创建?如果在代码中创建视图,最好为以后需要引用的每个子视图保留一个实例变量。我怀疑这里发生的事情是,子视图数组不包含您认为它包含的内容。对不起,我不工作,因为一次有多个视图。另外,从数组中访问变量应该是相同的,对吗?至少应该将文本字段保留在单独的数组中。我的观点是,子视图数组不一定是最佳位置-例如,当显示键盘时,框架是否刚刚添加了另一个子视图?我一点也不知道,但这似乎是可能的。为什么不在调用上面的代码之前记录子视图数组的内容并查看其中的内容?值得注意的是,这也适用于UILabel,似乎启用/可编辑变量以某种奇怪的方式返回,但是调用了if语句,只要确保enabled值等于YES就值得注意的是,UILabel也可以这样做,似乎enabled/editable变量以某种奇怪的方式返回,但只要确保enabled值等于YES,就会调用if语句