Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2015
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. // why does this not compile?
  2. // Book implements BookRenderable
  3. // so why does the compiler complain when Library.books is a [Book] and LibraryRenderable is looking for [BookRenderable] ??
  4.  
  5. protocol LibraryRenderable {
  6. var address : String? { get }
  7. var books : [BookRenderable]? { get }
  8. }
  9.  
  10. protocol BookRenderable {
  11. var title : String? { get }
  12. var author : String? { get }
  13. }
  14.  
  15. struct MockLibrary : LibraryRenderable {
  16. let address = "123 Main Street"
  17. let books = [MockBook(), MockBook()]
  18. }
  19.  
  20. struct MockBook : BookRenderable {
  21. let title : String? = "Ender's Game"
  22. let author : String? = "Orson Scott Card"
  23. }
  24.  
  25. class Library : LibraryRenderable {
  26. var address : String?
  27. var books : [Book]? // <---- compiler complains "does not conform to LibraryRenderable"
  28. }
  29.  
  30. class Book : BookRenderable {
  31. var title : String?
  32. var author : String?
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement