Ios UIScrollView失去对委托的引用

Ios UIScrollView失去对委托的引用,ios,memory,uiscrollviewdelegate,unrecognized-selector,Ios,Memory,Uiscrollviewdelegate,Unrecognized Selector,我需要动态创建许多UIScrollView并用内容填充它们。这一切都很好,但当我将代理设置为self并平移列表时,会出现以下异常: 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[\uu NSCFString scrollViewDidScroll:]:未识别的选择器发送到实例0x7581230' NSCFString显然不是我的视图控制器(它实现了协议UIScrollViewDelegate),因此从我收集的数据来看,内存混乱,无法正确保留引

我需要动态创建许多UIScrollView并用内容填充它们。这一切都很好,但当我将代理设置为self并平移列表时,会出现以下异常:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[\uu NSCFString scrollViewDidScroll:]:未识别的选择器发送到实例0x7581230'

NSCFString显然不是我的视图控制器(它实现了协议UIScrollViewDelegate),因此从我收集的数据来看,内存混乱,无法正确保留引用。有时候,这也可能是其他一些东西,强烈地表明内存有问题

以下是创建列表的代码:

for (NSUInteger i = 0; i < self.stories.currentStory.selectableWordCount; i++) {
    UIScrollView *list = [[UIScrollView alloc] init];
    list.alwaysBounceVertical = YES;
    list.showsVerticalScrollIndicator = NO;
    list.clipsToBounds = NO;
    list.delegate = self;
    list.pagingEnabled = YES;
    [self.view addSubview:list];

    .. // add UILabels to the list, set the frame, contentSize etc

    [self.wordLists addObject:list]; // this is a @property (nonatomic, strong) NSMutableArray, declared in a private interface()
}
for(i=0;i
如果我记录了该代理,则它是正确的<代码>响应选择器也匹配良好。有趣的是,如果我注释掉
scrollViewDidScroll:
respondsToSelector:
不再匹配,并且(可能正因为如此),UIScrollView将不再尝试调用此方法。这意味着它可以正确地到达委托以检查方法的可用性,但是当它被调用时,出现了一些错误

我用ARC瞄准iOS5。如果不是这样的话,我会假设我自己把记忆搞砸了,但现在我没有了同样的控制能力


我在调试这个问题时遇到了困难,如果您有任何关于如何继续的帮助,我们将不胜感激。我显然找错地方了。视图控制器是通过.xib添加的,视图指向舞台上的子视图。但是,我需要在主视图控制器中为视图控制器创建一个IBOutlet,以确保它保留在内存中。希望这能帮助其他人解决类似问题:)