Cache resolved app bundle

This commit is contained in:
Isaac 2023-12-18 02:07:17 +04:00
parent 820b038bbc
commit 41f05c73d8

View File

@ -1,6 +1,9 @@
#import <AppBundle/AppBundle.h> #import <AppBundle/AppBundle.h>
NSBundle * _Nonnull getAppBundle() { NSBundle * _Nonnull getAppBundle() {
static NSBundle *appBundle = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSBundle *bundle = [NSBundle mainBundle]; NSBundle *bundle = [NSBundle mainBundle];
if ([[bundle.bundleURL pathExtension] isEqualToString:@"appex"]) { if ([[bundle.bundleURL pathExtension] isEqualToString:@"appex"]) {
bundle = [NSBundle bundleWithURL:[[bundle.bundleURL URLByDeletingLastPathComponent] URLByDeletingLastPathComponent]]; bundle = [NSBundle bundleWithURL:[[bundle.bundleURL URLByDeletingLastPathComponent] URLByDeletingLastPathComponent]];
@ -9,7 +12,10 @@ NSBundle * _Nonnull getAppBundle() {
} else if ([[bundle.bundleURL pathExtension] isEqualToString:@"Frameworks"]) { } else if ([[bundle.bundleURL pathExtension] isEqualToString:@"Frameworks"]) {
bundle = [NSBundle bundleWithURL:[bundle.bundleURL URLByDeletingLastPathComponent]]; bundle = [NSBundle bundleWithURL:[bundle.bundleURL URLByDeletingLastPathComponent]];
} }
return bundle; appBundle = bundle;
});
return appBundle;
} }
@implementation UIImage (AppBundle) @implementation UIImage (AppBundle)