views:

234

answers:

2

First off, I'm a complete beginner.

That said, I thought an ambitious longer-term project/learning experience would be to create an app that displayed daily quotes, like those cheesy day-by-day calendars our grandmothers have in their bathrooms. I want it to have two per day, each one represented by a tab in a UISegmentedControl. That's the long term. Right now I'd be happy with getting a single day's worth of quotes functioning.

Onto the questions:

  1. How can I get text saved in a .txt or .rtf file to be displayed in a UITextView? Preferably without using 'stringWithContentsOfFile,' since Xcode is telling me that's deprecated.

  2. How can I get content from a different file (or maybe a different portion of the same file...?) to be displayed when the user taps the second segment?

If I can get it running so that those two conditions are met and I understand what's going on, I'll consider the day a success. Thanks!

+1  A: 

Even though stringWithContentsOfFile: is deprecated, stringWithContentsOfFile:usedEncoding:error: is not. That is the standard method to use for reading from files.



As for the second question, you simply test the state of the segmented control and perform as action based on it. Admittedly this is a high level answer but should get you going.

ennuikiller
+1  A: 

1.

NSError *error = nil;
NSStringEncoding stringEncoding;
NSString *fileText = [NSString stringWithContentsOfFile:@"/path" usedEncoding:&stringEncoding error:&error];
myTextView.text = fileText;

The error and encoding are optional, and you can pass in nil for both. But if you care about the error, or what encoding the file was in they will have useful info in them after the string is created.

2.

Set the valueChanged outlet in Interface Builder to an IBAction on your controller, such as setSegmentValue:. Then, assuming you have an array of quote strings:

- (IBAction)setSegmentValue:(id)sender {
    UISegmentedControl *control = (UISegmentedControl*)sender;
    NSString *quote = [quotes objectAtIndex:control.selectedSegmentIndex];
    myTextView.text = quote;
}
Squeegy
Thanks, that gets me on my way
Arthur Skirvin
Sweet! I had some time to fiddle this evening and this was just the help I needed. Everything functioning to my satisfaction and I think I understand everything going on. Thanks again for taking the time to help a newbie!
Arthur Skirvin