2017-10-20 32 views
0

Je viens de terminer mon application et il fonctionnait très bien, mais tout d'un coup après avoir appuyé sur Fichier -> dupliquer, j'ai un message disantXcode: redéclaration invalide « ViewController »

redéclaration invalide « ViewController '

S'il vous plaît aidez-moi si vous pouvez les gars? Merci

import UIKit 

class ViewController: UIViewController, UIScrollViewDelegate { 

    @IBOutlet var slideScrollView: UIScrollView! 

    @IBOutlet var pageControl: UIPageControl! 

    override func viewDidLoad() { 

     slideScrollView.delegate = self 
     let slides:[Slide] = createSlides() 
     setupSlideScrollView(slides: slides) 
     pageControl.numberOfPages = slides.count 
     pageControl.currentPage = 0 
     view.bringSubview(toFront: pageControl) 
    } 

    func createSlides() -> [Slide] { 
     let slide1: Slide = Bundle.main.loadNibNamed("Slide", owner:self, options:nil)?.first as!Slide 

     slide1.label.text = "Slide1" 

     let slide2: Slide = Bundle.main.loadNibNamed("Slide", owner:self, options:nil)?.first as!Slide 

     slide2.label.text = "Slide2" 
     return [slide1, slide2] 
    } 

    func setupSlideScrollView (slides:[Slide]) { 

     slideScrollView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height) 
     slideScrollView.contentSize = CGSize(width: view.frame.width * CGFloat(slides.count), height: view.frame.height) 
     slideScrollView.isPagingEnabled = true 


     for i in 0 ..< slides.count { 

      slides[i].frame = CGRect(x: view.frame.width * CGFloat(i), y: 0, width: view.frame.width, height: view.frame.height) 
      slideScrollView.addSubview(slides[i]) 
     } 
    } 

    func scrollViewDidScroll(_ scrollView: UIScrollView) { 
     let pageIndex = round(scrollView.contentOffset.x/view.frame.width) 
     pageControl.currentPage = Int(pageIndex) 

    } 

} 
+2

Le problème n'est pas l'implémentation de 'ViewController' mais plutôt que vous avez dupliqué le fichier, donc il trouve maintenant deux fichiers différents qui définissent' ViewController'. Vous devez soit supprimer l'un d'entre eux, soit en modifier un pour définir une classe avec un nom autre que 'ViewController' (par exemple' SecondViewController' ou 'DetailsViewController' ou autre). – Rob

+0

Oui! Je l'ai juste compris. Merci de m'aider! –

Répondre

1

Avez-vous appuyé Enregistrer après avoir cliqué sur le en double? Le message vous indique déjà une solution. Vous devez trouver l'autre classe que vous avez le nom ViewController.

Deux étapes peuvent aider:

  1. Recherche ViewController dans votre de Xcode Trouver Navigator (recherche)
  2. Parcourez votre dossier de projet et recherchez le fichier .swift dupliquée.
+0

Salut Glenn! Merci d'avoir pris le temps de m'aider. J'ai collé tout le code là-bas. Je me suis fatigué de le trouver mais je n'ai pas eu de chance –

+0

Tout va bien maintenant! à votre santé! –

+0

C'est bon d'entendre ça, J.BAT. Vous pouvez sélectionner une réponse à votre (cette) question/discussion :). – Glenn

1

Cette erreur signifie que vous avez un autre fichier déclaré avec:

class ViewController... 

Vous pourriez avoir changé le nom de fichier, par exemple pour ViewControllerTwo.swift mais assurez-vous de changer aussi la déclaration de classe.

+0

A travaillé maintenant. Merci Rashwan! –