for descargar ios iphone xcode swift xcode6

descargar - No puedo entender por qué obtengo el error "El controlador de vista de clase no tiene inicializadores" Error en el código de la aplicación Swift para iOS



xcode requirements (2)

En una clase Swift, cada variable declarada no opcional debe inicializarse en uno de los métodos de inicio dados.

En tu caso, es esta variable.

var pageViewController: UIPageViewController

declararlo como opcional implícito sin empaquetar como las otras dos variables, porque se garantiza que la variable se establecerá antes de ser utilizada.

var pageViewController: UIPageViewController!

Estaba intentando hacer una pantalla de tutorial en mi aplicación de iOS en la que el usuario pasa unas cuantas fotos para aprender un poco sobre dicha aplicación. Todo se ve bien, excepto cuando compilo mi proyecto, obtengo el siguiente error en la primera línea de código:

Class ViewController no tiene inicializadores

¿Qué hice mal?

Mi código de ViewController.swift está debajo

import UIKit //line below is where I get the error class ViewController: UIViewController, UIPageViewControllerDataSource { //end var pageViewController: UIPageViewController var pageTitles: NSArray! var pageImages: NSArray! override func viewDidLoad() { super.viewDidLoad() self.pageTitles = NSArray(objects: "", "", "") self.pageImages = NSArray(objects: "page1", "page2", "page3") self.pageViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PageViewController") as! UIPageViewController self.pageViewController.dataSource = self var startVC = self.viewControllerAtIndex(0) as ContentViewController var viewControllers = NSArray(object: startVC) self.pageViewController.setViewControllers(viewControllers as [AnyObject], direction: .Forward, animated: true, completion: nil) self.addChildViewController(self.pageViewController) self.view.addSubview(self.pageViewController.view) self.pageViewController.didMoveToParentViewController(self) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBAction func restartAction(sender: AnyObject) { } func viewControllerAtIndex(index: Int) -> ContentViewController { if ((self.pageTitles.count == 0) || (index >= self.pageTitles.count)) { return ContentViewController() } var vc: ContentViewController = self.storyboard?.instantiateViewControllerWithIdentifier("ContentViewController") as! ContentViewController vc.imageFile = self.pageImages[index] as! String vc.titleText = self.pageTitles[index] as! String vc.pageIndex = index return vc } // Mark: - Page View Controller Data Source func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? { var vc = viewController as! ContentViewController var index = vc.pageIndex as Int if (index == 0 || index == NSNotFound) { return nil } index-- return self.viewControllerAtIndex(index) } func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? { var vc = viewController as! ContentViewController var index = vc.pageIndex as Int if (index == NSNotFound) { return nil } index++ if (index == self.pageTitles.count) { return nil } return self.viewControllerAtIndex(index) } func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int { return self.pageTitles.count } func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int { return 0 } }


Es por esta línea:

var pageViewController: UIPageViewController

Está diciendo que pageViewController no puede ser nulo, pero no tiene un inicializador que lo establezca en un valor. Mirando tu código, sospecho que quieres cambiarlo a esto:

var pageViewController: UIPageViewController!

Entré en más detalles sobre este problema aquí.