Грешки на PageView Controller „Очакван селектор за Objective C“

Имам толкова много проблеми със създаването на контролер за изглед на страници. Направих корекции в кода си три пъти, но ПРОДЪЛЖАВАМ да получавам следната грешка: „Очакван селектор за метод Objective C“. Получавам и друго съобщение за грешка, което гласи Липсва „@end“. Може ли някой да ми каже защо получавам тези съобщения? :л

    #import "InstructionContentViewController.h"
    #import "StorageViewController.h"

    @interface StorageViewController ()

    @end

    @implementation StorageViewController

    - (void)viewDidLoad

    {
    [super viewDidLoad];
    // Create the data model
    _pageTitles = @[@"Over 200 Tips and Tricks", @"Discover Hidden Features", @"Bookmark     Favorite Tip", @"Free Regular Update"];
    _pageImages = @[@"instructions1.png", @"instructions2.png", @"instructions3.png", @"instructions4.png"];

    // Create page view controller
    self.instructionViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"InstructionViewController"];
    self.instructionViewController.dataSource = self;

    InstructionContentViewController *startInstructViewController = [self viewControllerAtIndex:0];
    NSArray *viewControllers = @[startInstructViewController];
    [self.instructionViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

    // Change the size of page view controller
    self.instructionViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 50);

    [self addChildViewController:_instructionViewController];
    [self.view addSubview:_instructionViewController.view];
    [self.instructionViewController didMoveToParentViewController:self];

     }

     - (void)didReceiveMemoryWarning
     {
      [super didReceiveMemoryWarning];
      // Dispose of any resources that can be recreated.
      }

     - (IBAction)startWalkthrough:(id)sender {

    InstructionContentViewController *startingInstructViewController = [self viewControllerAtIndex:0];
    NSArray *viewControllers = @[startingInstructViewController];
    [self.instructionViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionReverse animated:NO completion:nil];
}

#pragma mark - Page View Controller Data Source Methods:

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
    NSUInteger index = ((InstructionContentViewController*) viewController).pageIndex;

    if ((index == 0) || (index == NSNotFound)) {
        return nil;
    }

      index--;
      return [self viewControllerAtIndex:index];
    }

      - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController      viewControllerAfterViewController:(UIViewController *)viewController
    {
    NSUInteger index = ((InstructionContentViewController*) viewController).pageIndex;

    if (index == NSNotFound) {
        return nil;
    }

    index++;
    if (index == [self.pageTitles count]) {
        return nil;
    }
    return [self viewControllerAtIndex:index];
    }

     - (InstructionContentViewController *)viewControllerAtIndex:(NSUInteger)index
    {
    if (([self.pageTitles count] == 0) || (index >= [self.pageTitles count])) {
        return nil;
    }

    // Create a new view controller and pass suitable data.
    InstructionContentViewController *instructionContentViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"InstructionContentViewController"];
    instructionContentViewController.instructimageFile = self.pageImages[index];
    instructionContentViewController.instructtitleText = self.pageTitles[index];
    instructionContentViewController.pageIndex = index;

    return instructionContentViewController;


    }


       - (NSInteger)presentationCountForPageViewController:(UIPageViewController     *)pageViewController
     {
    return [self.pageTitles count];
    }

    - (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController
{
    return 0;
}



     @end

person user3310055    schedule 03.03.2014    source източник
comment
Най-вероятно имате лоши невидими символи в кода си. Можете ли да го копирате и поставите в текстов редактор и обратно например?   -  person Nick Weaver    schedule 04.03.2014
comment
пробвах това два пъти и нямах късмет :l   -  person user3310055    schedule 04.03.2014
comment
Току-що поставих вашия код в Xcode и след премахване на всички неизвестни символи, той се компилира добре (компилаторът не се интересува от ужасния стил на кода, но определено трябва да опитате да адаптирате официалните насоки за кодиране на Objective-C). Изглежда, че @NickWeaver е правилен и във вашия код има някои странни невидими символи. В кои редове получавате грешките?   -  person David Ganster    schedule 04.03.2014
comment
Здравей Дейвид, благодаря за отговора. Получавам грешка в @interface 'StorageViewController (), end, implementation' StorageViewController' част от кода. Наистина не мога да разбера това и това ме подлудява! Измина почти цял ден в опити да поправя това.   -  person user3310055    schedule 04.03.2014
comment
Мислили ли сте да премахнете разширението на класа в горната част? Изглежда това е кодът, който ви създава проблеми и не изглежда, че го използвате за нещо.   -  person Aaron    schedule 04.03.2014


Отговори (1)


възможно е да съществува синтактична грешка в един от файловете, които #import, или InstructionContentViewController.h, или StorageViewController.h.

Поради начина, по който се обработва импортирането, предупреждението понякога може да се появи на неочаквано място. Проверете дали те са добре оформени, както и всички други файлове, които могат да бъдат импортирани от тях.

Освен това в рамките на Xcode можете да щракнете върху менюто „Продукт“ и да задържите клавиша Option за команда „Изчистване на папката за компилация“. Това ще изчисти предварително компилираните данни и ще принуди всичко да бъде повторно компилирано от нулата.

person Nick    schedule 04.03.2014