Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

iOS Build a Blog Reader iPhone App Exploring the Master-Detail Template Modifying the Master-Detail Template

Making upper case

I can't understand apple`s documentation for upper case. how can I make 'bookTitle' upper case using this:

  • (NSString *)uppercaseString

4 Answers

Matthew Mascioni
Matthew Mascioni
20,444 Points

Sorry to hear that!

uppercaseString is an instance method. If you recall from some of the Treehouse videos, instance methods work on an instance of a given class. So, if I instantiated an NSString named stringy:

NSString *stringy = @"Hello World!";

Then use uppercaseString on the instance of NSString we've created:

[stringy uppercaseString];

... nothing visible happens. uppercaseString is still working, though. However, once it finishes converting the string to uppercase letters, there's no output to console, or anything immediately noticeable. So it cries in a corner for a little bit. But, if we did this:

NSString *stringy = @"Hello world!";
NSString *uppercase = [stringy uppercaseString];
NSLog(@"%@", uppercase);

Or this:

NSString *stringy = @"Hello world!";
NSLog(@"%@", [stringy uppercaseString]);

... Our console will spit out HELLO WORLD!

Hope this helps! Try exploring other instance methods for NSString. You'll find Apple has a lot of neat ones, like enumerateLinguisticTagsInRange.

Matthew Mascioni
Matthew Mascioni
20,444 Points

You're welcome! When we look at:

- (NSString *)uppercaseString;

We see three things. First, our '-' symbol, which tells us that this method is an instance method (which I explained previously). Then, we see (NSString ), which tells us that this method *returns an NSString. Finally, we see 'uppercaseString', which is just the name of the method.

When we write:

NSString *newString = [oldString uppercaseString];

We are running uppercaseString on the oldString. This returns an NSString, as I explained above. We then assign this new string to our newString variable.

Matthew, thank you very much for you help, but please help me to figure out how can I read :

  • (NSString *) uppercaseString and understand: NSString * newString = [oldString uppercaseString]; ? =/

Matthew, thank you again. This probably will help me to understand apple's documentation. =)