Я потратил часы, пытаясь отладить это, используя инструменты и StackOverFlow, но я не нашел решения. Мой UIPageViewController продолжает рушиться, и я действительно думаю, что это потому, что процессор достигает 100%, а память может достигать высоких уровней. Тем не менее, я не мог найти никаких переменных или каких-либо сильных ссылок, которые предотвратили бы освобождение предыдущих не отображаемых контроллеров View. Я думаю, что это проблема памяти в PageViewController, но я не уверен на 100%. Я довольно новичок в Swift, и мне действительно трудно с этим дебютировать, поэтому любая помощь будет очень признательна. Вот код для моего UIPageViewControllerDataSource
.My UIPageViewController продолжает сбой
import UIKit
class HarishIntroduction: UIViewController, UIPageViewControllerDataSource {
var pageViewController: UIPageViewController!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.pageViewController = harishStoryboard.instantiateViewControllerWithIdentifier("HarishPageViewController") as! UIPageViewController
self.pageViewController.dataSource = self
weak var initialViewController = harishStoryboard.instantiateViewControllerWithIdentifier("HarishIntroduction") as? HarishIntroduction
let viewController = NSArray(object: initialViewController!)
dispatch_async(dispatch_get_main_queue(), {
self.pageViewController.setViewControllers(viewController as? [UIViewController], direction: .Forward, animated: false, completion: nil)
})
self.pageViewController.view.frame = self.view.bounds
self.addChildViewController(pageViewController)
self.view.addSubview(self.pageViewController.view)
self.pageViewController.didMoveToParentViewController(self)
}
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
if viewController.isKindOfClass(HarishIntroduction) {
return nil
}
if viewController.isKindOfClass(HarishPlaces) {
let correctViewController = harishStoryboard.instantiateViewControllerWithIdentifier("HarishIntroduction") as? HarishIntroduction
return correctViewController
}
if viewController.isKindOfClass(WyomingSeminary) {
let correctViewController = harishStoryboard.instantiateViewControllerWithIdentifier("HarishPlaces") as? HarishPlaces
return correctViewController
}
if viewController.isKindOfClass(AppleTree) {
let correctViewController = harishStoryboard.instantiateViewControllerWithIdentifier("WyomingSeminary") as? WyomingSeminary
return correctViewController
}
if viewController.isKindOfClass(KearneyHighSchool) {
let correctViewController = harishStoryboard.instantiateViewControllerWithIdentifier("AppleTree") as? AppleTree
return correctViewController
}
if viewController.isKindOfClass(MosconeCenter) {
let correctViewController = harishStoryboard.instantiateViewControllerWithIdentifier("KearneyHighSchool") as? KearneyHighSchool
return correctViewController
}
else {
return nil
}
}
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
if viewController.isKindOfClass(HarishIntroduction) {
let correctViewController = harishStoryboard.instantiateViewControllerWithIdentifier("HarishPlaces") as? HarishPlaces
return correctViewController
}
if viewController.isKindOfClass(HarishPlaces) {
let correctViewController = harishStoryboard.instantiateViewControllerWithIdentifier("WyomingSeminary") as? WyomingSeminary
return correctViewController
}
if viewController.isKindOfClass(WyomingSeminary) {
let correctViewController = harishStoryboard.instantiateViewControllerWithIdentifier("AppleTree") as? AppleTree
return correctViewController
}
if viewController.isKindOfClass(AppleTree) {
let correctViewController = harishStoryboard.instantiateViewControllerWithIdentifier("KearneyHighSchool") as? KearneyHighSchool
return correctViewController
}
if viewController.isKindOfClass(KearneyHighSchool) {
let correctViewController = harishStoryboard.instantiateViewControllerWithIdentifier("MosconeCenter") as? MosconeCenter
return correctViewController
}
if viewController.isKindOfClass(MosconeCenter) {
return nil
}
else {
return nil
}
}
ОБНОВЛЕНИЕ: Исходный контроллер представления является "HarishIntroduction."
В какой момент это грохот ??? Вы пытались добавить символические точки останова? – satheeshwaran
Что такое сообщение об аварии? – Paulw11
@ Paulw11 Я вообще не получаю сообщение об аварии. На самом деле, странно, что вся система выходит из строя и перезагружается, и все, что я получаю в консоли, - это сообщение, в котором говорится, что соединение XPC было прервано и в основном оно потеряло соединение с симулятором. – Harish