2012-05-06 3 views
0

Я проверяю образец проекта от github и получил эту ошибку, в одном из классов, в нем много классов, но я получил дверь только в этом классе. «приемник-контроллер типа, например, сообщения, не объявить метод с селектором„loadChapter: forBook“пришлаПроблема с ARC в iPhone sdk

ошибки в этом методе,

- (void)displayBook: (int)theBook andChapter: (int)theChapter andVerse: (int)theVerse 
{ 

    [((PKRootViewController *)self.parentViewController.parentViewController) showWaitingIndicator]; 
    PKWait(//here i got this error 
      [self loadChapter:theChapter forBook:theBook]; 
      //[self.tableView reloadData]; 
      [self reloadTableCache]; 
      [(PKHistory *)[PKHistory instance] addPassagewithBook:theBook andChapter:theChapter andVerse:theVerse]; 
      [self notifyChangedHistory]; 
      ((PKSettings *)[PKSettings instance]).topVerse = theVerse; 
      if (theVerse>1) 
      { 
       [self.tableView scrollToRowAtIndexPath: [NSIndexPath indexPathForRow:theVerse-1 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:NO]; 
      } 
      else 
      { 
       [self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO]; 
      } 
      UITabBarController *tbc = (UITabBarController *)self.parentViewController.parentViewController; 
      tbc.selectedIndex = 0; 
      ); 
} 

, а также этот метод также имеет эту ошибку

- (void)loadChapter: (int)theChapter forBook: (int)theBook 
    { 
     // clear selectedVerses 
     selectedVerses = [[NSMutableDictionary alloc] init]; 
     PKSettings *theSettings = [PKSettings instance]; 
     theSettings.currentBook = theBook; 
     theSettings.currentChapter = theChapter; 
     //[theSettings saveCurrentReference]; -- removed for speed 
     [self loadChapter];//here i got the error,,in this case after selector'loadChapter; 
    } 

wha t является причиной этой ошибки, по ошибке показывает окно, которое показывает, automaticReferenceCounting Issue

ответ

1

у вас есть селекторная нагрузкаГлава без параметров?

так же проверить, если их декларация включена в файл интерфейса или не

+0

@ В Saad нет описания интерфейса для этого ... но это метод - (void) loadChapter: (int) theChapter forBook: (int) theBook {... то зачем нужно объявлять в интерфейсе? – stackiphone

+0

, потому что вы справляетесь с этим методом, и компилятор не знает об этом методе, так как вы его не объявили, вам необходимо предварительно определить все, что вы хотите использовать поздно, например переменная, если вы ее не определяете, это будет генерировать ошибку, то же самое здесь, в ARC, вы либо объявите его в интерфейсе, либо определите его в реализации выше его использования, я имею в виду выше метода, в который он обращается – Saad

+0

скажите, получите ли вы решение – Saad

1

Ошибка receiver type view controller for instance message does not declare a method with selector 'loadChapter:forBook' означает, что компилятор не может найден метод loadChapter:forBook: на интерфейсе декларации self. То же самое происходит с другой ошибкой, но с методом loadChapter. Таким образом, вероятно, проблема заключается в том, что вы забыли объявить методы на интерфейсе или, возможно, объявили два метода с тем же именем.