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 trialimelda cloutier
Courses Plus Student 2,597 Pointslast chalenge in enum
I have no clue how to do that one. what type return a .plain or nil? am missing a kit?
// Example of UIBarButtonItem instance
// let someButton = UIBarButtonItem(title: "A Title", style: .plain, target: nil, action: nil)
enum BarButton {
case done(title: String)
case edit(title: String)
}
let done = BarButton.done(title: "Save")
3 Answers
Matthew Long
28,407 PointsIt would probably be easier if you used Xcode to write the code for challenges. That's my experience at least. If you read the comments in the code challenge it may help you. It wants you to create a button
method that returns an instance of UIBarButtonItem
. An example of the instance is in the comments. The style should be UIBarButtonStyle.done
for the done
case and UIBarButtonStyle.plain
for the edit
case. I think it would accept an if statement as well but I did it using a switch statement:
enum BarButton {
case done(title: String)
case edit(title: String)
func button() -> UIBarButtonItem {
switch self {
case .done(let title): return UIBarButtonItem(title: title, style: .done, target: nil, action: nil)
case .edit(let title): return UIBarButtonItem(title: title, style: .plain, target: nil, action: nil)
}
}
}
let done = BarButton.done(title: "Save")
let button = done.button()
imelda cloutier
Courses Plus Student 2,597 Pointsthat would be a nice note in the comments
imelda cloutier
Courses Plus Student 2,597 Pointswhy after case .dont you only put (let :title) not all of the component like the example he give back?
imelda cloutier
Courses Plus Student 2,597 Pointsimelda cloutier
Courses Plus Student 2,597 Pointswhen I tried to put a return for UIBarButtonItem I got a compiler error. maybe I put it wrong. I ll try again. I use Xcode too.
Matthew Long
28,407 PointsMatthew Long
28,407 PointsYou'll need to import
UIKit
. That's pretty much the case anytime you see a class with theUI
prefix.I thought you were asking if you needed to import UIKit in the code challenge. No, you only need to import it in Xcode. I don't really know how the code challenge does it behind the scenes, but you don't need to import anything.