2015-08-01 2 views
1

Я не понимаю, что неоднозначно из-за моего использования book.numberOfPages в моем TableViewController. У меня нет проблем с использованием каких-либо других атрибутов. Здесь не должно быть никакой двусмысленности: я определил его как Float в редакторе модели данных и в верхней части TableViewController.Неоднозначное использование 'numberOfPages'

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
      if segue.identifier == "showBookDetail" { 
       let indexPath:NSIndexPath = self.tableView.indexPathForSelectedRow()! 
       let book: AnyObject = addBookViewController.fetchedResultsController.objectAtIndexPath(indexPath) as! Book 
       var detailViewController:BookDetailViewController = segue.destinationViewController as! BookDetailViewController 
       detailViewController.title = book.name 
       detailViewController.pagesReadText = "\(Int(book.pagesRead))" 
       detailViewController.timeReadText = "\(Int(book.timeRead))" 
       println(book.numberOfPages) 
      } 
     } 

ответ

1

Возможно, вы не можете объявить книгу как AnyObject поэтому компилятор знает, что это книга ...

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
      if segue.identifier == "showBookDetail" { 
       let indexPath:NSIndexPath = self.tableView.indexPathForSelectedRow()! 
       let book = addBookViewController.fetchedResultsController.objectAtIndexPath(indexPath) as! Book 
       var detailViewController:BookDetailViewController = segue.destinationViewController as! BookDetailViewController 
       detailViewController.title = book.name 
       detailViewController.pagesReadText = "\(Int(book.pagesRead))" 
       detailViewController.timeReadText = "\(Int(book.timeRead))" 
       println(book.numberOfPages) 
      } 
     } 
+0

'numberOfPages' также свойство' UIPageControl'. Поэтому Swift/iOS не может определить, следует ли ему вызывать метод «Книга» или метод «UIPageControl», потому что «книга» определена как «AnyObject». Ваше предлагаемое решение - правильный способ справиться с этим. – vacawama

+0

Это сработало! Кто-нибудь знает, почему эта проблема возникает только на одном контроллере просмотра, а не на двух других? –