Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

iOS Protocols in Swift Creating Flexible Objects Using Protocols Protocol Inheritance

vivek d
seal-mask
.a{fill-rule:evenodd;}techdegree
vivek d
iOS Development Techdegree Student 1,596 Points

how to solve this?

can anyone explain, please

protocols.swift
protocol Animal {
  var numberOfLegs: Int { get }
}

protocol Pet : Animal {
   var cuddlyName: String { get }
}

struct Dog {
  var cuddlyName : String
}

1 Answer

Matthew Long
Matthew Long
28,407 Points

You're off to a good start. You need to make the Dog struct conform to Pet using :. Once you do that you simply give Dog the properties of both the Pet and Animal protocols. Don't forget that by conforming to Pet, Dog will also conform to Animal so it needs cuddlyName and numberOfLegs.

protocol Animal {
  var numberOfLegs: Int { get }
}

protocol Pet: Animal {
  var cuddlyName: String { get }
}

struct Dog: Pet {
  var numberOfLegs: Int
  var cuddlyName: String
}

Hopefully I explained that in a way that made sense.