Я не совсем уверен, что вы пытаетесь выполнить, но если вы хотите загрузить ресурс пакета без использования прямого пути к пакету, вы можете использовать либо [NSBundle bundleForClass:]
, либо [NSBundle bundleWithIdentifier:]
.Если у вас есть ссылка на экземпляр нужного вам пакета, вы можете получить доступ к его содержимому следующим образом:
NSBundle myBundle = [NSBundle bundleWithIdentifier:@"com.my.identifier"];
[myBundle pathForResource:@"myResource" ofType:@"type"];
Если вы хотите, чтобы он оставался точным даже после перемещения пакета, это может бытьхитрый вопрос.Как говорится в документации, «объект NSBundle представляет местоположение в файловой системе ...».Если это местоположение перемещается, экземпляр пакета будет по-прежнему искать в существующем местоположении.Я думаю, что вам нужно будет найти другой механизм, чтобы определить, перемещен ли пакет, и воссоздать ваш экземпляр NSBundle из нового местоположения.