How do I access a file from Xcode’s "Supporting Files" group, in app?
Asked Answered
C

3

6

I have an app that I've almost finish now that emails, at the end of a data entry flow, two .pdf files. One of these is generated from the entered data, the other is a static file that will be the same in every instance.

The first pdf is generating fine, it's saved to the apps 'documents' folder, and I have successfully attached to to an email for sending. It's the second .pdf, one that I made externally to the app and am trying to add, that is causing me grief.

I've added it to the 'Supporting Files' folder within my Xcode project, but after much searching on here, and elsewhere online, I can't work out how to access that file to be able to add it as an attachment in the email. Having "downloaded" the app's data from the Organizer in Xcode, I can see that the file isn't there anywhere; presumably because Xcode can see that the file isn't being used anywhere, it's not adding it at build time (very much an assumption on my part), but I don't know how to reference it anywhere because I don't know where it will be to reference it!

Couldst answered 7/10, 2011 at 11:9 Comment(0)
U
9

The Xcode does not generate any folders in your app bundle that corresponds to groups. Just make sure that your pdf is present in Copy Bundle Resources in your target's Build Phases. You then access your resource under [[NSBundle mainBundle] bundlePath] path.

Unscreened answered 7/10, 2011 at 12:3 Comment(1)
That's fantastic, thanks mja, pointed me in the right direction!Couldst
E
3

If you want to access an image, this code is a good sample as how to:

NSString* imageName = [[NSBundle mainBundle] pathForResource:@"image1" ofType:@"png"];
NSImage* imageObj = [[NSImage alloc] initWithContentsOfFile:imageName];
Embitter answered 24/7, 2013 at 4:5 Comment(0)
C
0

In Swift you can get the bundle-resorce-path with the following function:

func currentresourcepath () -> String
{
    return (NSBundle.mainBundle().bundlePath + "/Contents/Resources/")
}
Contrayerva answered 13/2, 2016 at 11:19 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.