2

我在一个是子类的类中有以下代码片段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;
}

我正在尝试做的是查看包含在 a 中的文件夹列表,UIScrollView以找到用户试图拖动的文件夹。 FolderWithAttachedLabel是一个UIView子类。在调试器中,subfolder看起来是一个有效的实例。

第一次通过内部循环,行:

CGPoint point = [subfolder convertPoint:pointInWindowView fromView:nil];

抛出以下异常:

*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSArrayM convertPoint:fromView:]:无法识别的选择器发送到实例 0xa329890

由于subfolder是一个UIView子类,我认为convertPoint:fromView:应该是一个好的选择器,但我显然错过了一些东西。

这里有什么建议吗?

TIA

4

1 回答 1

2

看起来子文件夹实际上是一个NSArray. 我建议看看如何expandedSubfolderLists填充。

对于未来,您可以在错误的“原因”中看到:

原因:'-[__NSArrayM convertPoint:fromView:]

__NSArrayMNSArray类簇的一部分。

于 2013-04-16T18:51:12.913 回答