UIPageViewControllerが最初のコンテンツビューコントローラを永久に保持しているようです。たとえば :UIPageViewControllerメモリリーク
DataViewController *startingViewController = [self.modelController viewControllerAtIndex:0 storyboard:self.storyboard];
NSArray *viewControllers = @[startingViewController];
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:NULL];
self.pageViewController.dataSource = self.modelController;
startingViewControllerは、それが解放さpageViewController自体まで解放されることはありません。
このバグを再現するには、ページベースのアプリケーションテンプレートを使用してXCodeで新しいプロジェクトを作成します。そして
@property NSInteger debugIndex; // file scope
NSLog(@"DataViewController[%d] created", self.debugIndex); // in viewDidLoad
NSLog(@"DataViewController[%d] dealloc", self.debugIndex); // in dealloc
DataViewController.m
へのコードの3行を追加します。そして、あなたは垂直方向にデモアプリケーションをスクロールするとき、あなたはこのようなログを取得します:DataViewController[0] created
DataViewController[1] created
DataViewController[2] created
DataViewController[1] dealloc
DataViewController[3] created
DataViewController[2] dealloc
DataViewController[4] created
DataViewController[3] dealloc
DataViewController[5] created
DataViewController[4] dealloc
DataViewController[6] created
DataViewController[5] dealloc
DataViewController [0]ですが決して割り当て解除されません。
これについてのアイデアは? ありがとう!
それを再利用あなたは今までにARCとこれに対する解決策を見つけますか? –