Как мне получить доступ к файлу из группы «Вспомогательные файлы» Xcode в приложении?

#ios #xcode #filesystems #attachment

#iOS #xcode #файловые системы #вложение

Вопрос:

У меня есть приложение, которое я почти закончил, которое отправляет по электронной почте в конце потока ввода данных два файла .pdf. Один из них генерируется на основе введенных данных, другой — статический файл, который будет одинаковым в каждом экземпляре.

Первый PDF-файл генерируется нормально, он сохраняется в папке «Документы» приложений, и я успешно прикрепил его к электронному письму для отправки. Это второй файл .pdf, который я создал извне в приложении и пытаюсь добавить, который вызывает у меня огорчение.

Я добавил его в папку «Вспомогательные файлы» в моем проекте Xcode, но после долгих поисков здесь и в других местах в Интернете я не могу понять, как получить доступ к этому файлу, чтобы иметь возможность добавить его в качестве вложения в электронное письмо. «Загрузив» данные приложения из органайзера в Xcode, я вижу, что файла нигде нет; предположительно, потому что Xcode может видеть, что файл нигде не используется, он не добавляет его во время сборки (в значительной степени предположение с моей стороны), но я не знаю, как ссылаться на него где-либо, потому что я не знаю, где будет на него ссылаться!

Ответ №1:

Xcode не создает в вашем пакете приложений никаких папок, соответствующих группам. Просто убедитесь, что ваш PDF-файл присутствует в ресурсах Copy Bundle на этапах сборки вашей цели. Затем вы получаете доступ к своему ресурсу по [[NSBundle mainBundle] bundlePath] пути.

Комментарии:

1. Это фантастика, спасибо, милая, указала мне правильное направление!

Ответ №2:

Если вы хотите получить доступ к изображению, этот код является хорошим примером того, как:

 NSString* imageName = [[NSBundle mainBundle] pathForResource:@"image1" ofType:@"png"];
NSImage* imageObj = [[NSImage alloc] initWithContentsOfFile:imageName];
  

Ответ №3:

В Swift вы можете получить bundle-resorce-path со следующей функцией:

 func currentresourcepath () -> String
{
    return (NSBundle.mainBundle().bundlePath   "/Contents/Resources/")
}