2012-01-19 30 views
0

我是有問題的,而跟隨布倫特普里迪在這link不能initWithFrame的UISearchBar

看起來每個人都OK的代碼的答案,但我得到EXC_BAD_ACCESS儀式上的UISearchBar初始化代碼,那就是: enter image description here 和有警告:無法恢復先前選定的幀。在控制檯 有人知道這裏有什麼問題嗎?

更新我的帖子: 的實際工作中的錯誤,當我把這個代碼放到我的實現文件:

(void)controllerWillChangeContent:(NSFetchedResultsController *)controller 
    { 
     UITableView *tableView = controller == self.fetchedResultsController ? self.tableView : self.searchDisplayController.searchResultsTableView; 
     [tableView beginUpdates]; 
    } 

(void)controller:(NSFetchedResultsController *)controller 
    didChangeSection:(id <NSFetchedResultsSectionInfo>)sectionInfo 
      atIndex:(NSUInteger)sectionIndex 
    forChangeType:(NSFetchedResultsChangeType)type 
{ 
    UITableView *tableView = controller == self.fetchedResultsController ? self.tableView : self.searchDisplayController.searchResultsTableView; 

    switch(type) 
    { 
     case NSFetchedResultsChangeInsert: 
      [tableView insertSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade]; 
      break; 

     case NSFetchedResultsChangeDelete: 
      [tableView deleteSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade]; 
      break; 
    } 
} 

(void)controller:(NSFetchedResultsController *)controller 
    didChangeObject:(id)anObject 
     atIndexPath:(NSIndexPath *)theIndexPath 
    forChangeType:(NSFetchedResultsChangeType)type 
     newIndexPath:(NSIndexPath *)newIndexPath 
{ 
    UITableView *tableView = controller == self.fetchedResultsController ? self.tableView : self.searchDisplayController.searchResultsTableView; 

    switch(type) 
    { 
     case NSFetchedResultsChangeInsert: 
      [tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade]; 
      break; 

     case NSFetchedResultsChangeDelete: 
      [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:theIndexPath] withRowAnimation:UITableViewRowAnimationFade]; 
      break; 

     case NSFetchedResultsChangeUpdate: 
      [self fetchedResultsController:controller configureCell:[tableView cellForRowAtIndexPath:theIndexPath] atIndexPath:theIndexPath]; 
      break; 

     case NSFetchedResultsChangeMove: 
      [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:theIndexPath] withRowAnimation:UITableViewRowAnimationFade]; 
      [tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath]withRowAnimation:UITableViewRowAnimationFade]; 
      break; 
    } 
} 

(void)controllerDidChangeContent:(NSFetchedResultsController *)controller 
{ 
    UITableView *tableView = controller == self.fetchedResultsController ? self.tableView : self.searchDisplayController.searchResultsTableView; 
    [tableView endUpdates]; 
} 

我希望有人能幫助我。 謝謝

回答

0

請嘗試僅使用tableview而不是self.tableview

+0

它說「使用undeclare標識符」tableView「如果我使用tableview沒有自我 – dejoong

+0

然後試着用硬編碼的寬度如果它的工作然後可能是問題是在tableview – Nikhil

+0

它仍然顯示相同的錯誤, - > UISearchBar * searchBar = [[[UISearchBar alloc] initWithFrame:CGRectMake(0,0,300,0)] autorelease];任何建議? – dejoong

相關問題