zlosa / wwdc-badges-methods-001-prework-ios

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WWDC Badges With Methods

Objectives

  1. Write custom methods to solve a few simple problems.
  2. Call your methods to get the results that you need.
  3. Run the tests to check your work.

Introduction

You did such a great job last year at the Apple Worldwide Developers Conference that they've asked for you back—and now they want you to handle a few more tasks as well. It's more work than you could possible handle by yourself given the time frame, so you'll need to figure out how to pass off the instructions by creating some methods!

The speaker list is new this year, but it boasts a similarly astounding group.

In addition to the name tags, the conference manager also wants you to print a personalized greeting for each speaker to inform each of them of their dressing room assignment back stage.

Instructions

  1. Open the *.xcworkspace and read the unit tests in AppDelegateSpec. Try to understand what each test is expecting to happen. (Do not copy/paste the expected arrays from the tests into your method body. These are matchers for what your methods should produce programmatically at run time.) You'll notice that Xcode generates three errors that show up in the Issue Navigator like this:
    This is normal and it just means that Xcode can't find the methods that are called in the tests—but of course it can't, you haven't written them yet!

  2. Navigate to the AppDelegate.h header file. Declare three instance (-) methods within the @interface:

  • badgeForSpeaker: that accepts one NSString argument named speaker and returns an NSString
  • badgesForSpeakers: that accepts one NSArray argument named speakers and returns an NSArray
  • greetingsAndRoomAssignmentsForSpeakers: that accepts on NSArray argument named speakers and returns an NSArray
  1. Navigate to the AppDelegate.m implementation file. Using autocomplete, fill out the names of each method and define them to return nil (these minimum definitions are required to get those three errors to disappear and the test build to succeed). Run the tests (⌘``U) to make sure that the build succeeds but that the tests initially fail.

  2. Redefine badgeForSpeaker: to return an interpolated string that includes the speaker's name submitted through the argument, in the manner of Hello, my name is <#speaker#>.. Run the test that checks this method and tweak your method until it the test passes.

  3. Redefine badgesForSpeakers: to return a mutable array of eight (8) interpolated strings that each read Hello, my name is <#speaker#>., one string for each speaker that will be at the conference. Run the test for this method and tweak your method body until the test passes.
    Hint: Use a for loop to iterate over the argument array and, upon each iteration of the loop, add to your mutable array the interpolated string for that speaker's badge.
    Advanced: Utilize your badgeForSpeaker: method by calling it on self and supplying it with an argument string pulled from the speakers array.

  4. Redefine the greetingsAndRoomAssignmentsForSpeakers: method to iterate over the speakers argument array and create an interpolated string with each speaker's name and their dressing room number (which range from 1 through 8). The interpolated string should read: Welcome, <#speaker#>! You'll be in dressing room <#roomNumber#>. Add each string to a mutable array. Return the mutable array, then run the test and tweak your method body until the test passes.

View this lesson on Learn.co

About

License:Other


Languages

Language:Objective-C 91.0%Language:Shell 6.2%Language:Ruby 2.7%