Objective C: Reading text files

49,056

content will be nil (which logs as '(null)') if you pass it a path it can't open. So your only issue is that the relevant instance of NSBundle is unable to find test.txt within the resources part of your application bundle.

You should:

  1. check the file is in your Xcode project; and, if it is,
  2. check it's included in the 'Copy Bundle Resources' phase underneath your selected Target (in the project tree view on the left in the normal Xcode window layout) and, if it is,
  3. look inside the generated application bundle (find your product, right click, select 'Reveal in Finder', from Finder right click on the app and select 'Show Package Contents', then look for your file in there) to make sure that it's there.

If it's copied in but the relevant instance of NSBundle can't find it then something very strange is afoot.

Share:
49,056
Chris
Author by

Chris

Updated on February 19, 2020

Comments

  • Chris
    Chris about 4 years

    I've done this before, but its not working for me now. I'm doing:

    NSString* path = [[NSBundle mainBundle] pathForResource:@"test" 
                                                     ofType:@"txt"];
    NSString* content = [NSString stringWithContentsOfFile:path
                                                  encoding:NSUTF8StringEncoding
                                                     error:NULL];
    NSLog(@"%@",path);
    

    and it returns (null) every time when I NSLog path and content. Can anyone see what I'm doing wrong?

  • Tommy
    Tommy about 13 years
    That's because the comments weren't present yet when I wrote my answer, and the normal notification bar that StackOverflow gives you to warn if other answers has appeared while you've been typing isn't presented when new comments are posted. Launching Xcode and checking that I was directing Chris to the right places to check things obviously took at least 2 minutes.