Ios 观点:fromView
我在一个类中有以下代码片段,该类是Ios 观点:fromView,ios,objective-c,Ios,Objective C,我在一个类中有以下代码片段,该类是UIView的子类: - (FolderWithAttachedLabel *) findFolderContainingPoint: (CGPoint) pointInWindowView { BOOL endOuterLoop = NO; for (UIScrollView *scroller in visibleScrollViews) { for (FolderWithAttachedLabel *subfolde
UIView
的子类:
- (FolderWithAttachedLabel *) findFolderContainingPoint: (CGPoint) pointInWindowView
{
BOOL endOuterLoop = NO;
for (UIScrollView *scroller in visibleScrollViews)
{
for (FolderWithAttachedLabel *subfolder in expandedSubfolderLists)
{
CGPoint point = [subfolder convertPoint:pointInWindowView fromView:nil];
if (CGRectContainsPoint(subfolder.bounds, point))
{
[subfolder removeFromSuperview];
return subfolder;
}
}
if (endOuterLoop)
break;
}
return nil;
}
我试图做的是查看UIScrollView
中包含的文件夹列表,找到用户试图拖动的文件夹FolderWithAttachedLabel
是一个UIView
子类。在调试器中,子文件夹
看起来是一个有效实例
第一次通过内环时,线路:
CGPoint point = [subfolder convertPoint:pointInWindowView fromView:nil];
引发以下异常:
*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[\uu NSArrayM convertPoint:fromView:]:未识别的选择器已发送到实例0xa329890
由于subfolder
是UIView
子类,我认为convertPoint:fromView:
应该是一个很好的选择器,但我显然遗漏了一些东西
有什么建议吗
TIA看起来子文件夹实际上是一个
NSArray
。我建议看看expandedsubfolderlist
是如何填充的
将来,您可以在错误的“原因”中看到:
原因:'-[\u NSArrayM convertPoint:fromView:]
\uuu NSArray
是NSArray
类集群的一部分。看起来子文件夹实际上是一个NSArray
。你能发布expandedsubfolderlist
是如何创建/填充的吗?我不知道你是如何从我发布的内容中了解到这一点的,但你完全正确。我应该从数组中找出一个对象。我不知道如何将评论标记为答案,但你为我回答了。我已经用这种方法胡闹了两个小时。谢谢您的帮助。您真正需要做的就是阅读收到的错误消息。它清楚地表明,您是在向NSArray说convertPoint
。当运行时告诉你,“嘿,在这一行中你犯了这个错误,”它真的在做你需要的一切。我已经发布了一个你可以接受的答案:)