いくつかのUIScrollViewを動的に作成し、それらにコンテンツを入力する必要があります。デリゲートを自分自身に設定してリストをパンする場合を除いて、これはすべて問題ありません。この例外が発生します。
キャッチされなかった例外'NSInvalidArgumentException'が原因でアプリを終了しています、理由:'-[__ NSCFString scrollViewDidScroll:]:認識されないセレクターがインスタンス0x7581230に送信されました'
NSCFStringは明らかに私のViewController(プロトコル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()
}
デリゲートをNSLogする場合、それは正しいです。respondsToSelector
うまくマッチします。興味深いことに、コメントアウトすると、scrollViewDidScroll:
respondsToSelector:
が一致しなくなり、(おそらくこれが原因で)UIScrollViewはこのメソッドを呼び出そうとしなくなります。これは、デリゲートに正しく到達してメソッドの可用性を確認できるが、呼び出されると問題が発生することを意味します。
ARCでiOS5をターゲットにしています。そうでない場合は、自分でメモリを台無しにしたと思いますが、今は同じコントロールがありません。
この問題のデバッグに苦労しています。続行する方法についてのヘルプをいただければ幸いです。