TiSDKResourceManager.m 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. //
  2. // TiSDKResourceManager.m
  3. // TiSDKDemo
  4. //
  5. // Created by iMacA1002 on 2019/12/10.
  6. // Copyright © 2020 Tillusory Tech. All rights reserved.
  7. //
  8. #import "TiSDKResourceManager.h"
  9. @interface TiSDKResourceManager ()
  10. @end
  11. @implementation TiSDKResourceManager
  12. static TiSDKResourceManager *shareManager = nil;
  13. static dispatch_once_t token;
  14. // MARK: --单例初始化方法--
  15. + (TiSDKResourceManager *)shareManager {
  16. dispatch_once(&token, ^{
  17. shareManager = [[TiSDKResourceManager alloc] init];
  18. });
  19. return shareManager;
  20. }
  21. +(void)releaseShareManager{
  22. token = 0; // 只有置成0,GCD才会认为它从未执行过.它默认为0.这样才能保证下次再次调用shareInstance的时候,再次创建对象.
  23. // [shareManager release];
  24. shareManager = nil;
  25. }
  26. - (instancetype)init
  27. {
  28. self = [super init];
  29. if (self) {
  30. NSString *stickerPath = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"sticker"];
  31. if (![[NSFileManager defaultManager] fileExistsAtPath:stickerPath]) {
  32. [[NSFileManager defaultManager] createDirectoryAtPath:stickerPath withIntermediateDirectories:NO attributes:nil error:nil];
  33. }
  34. NSString *giftPath = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"gift"];
  35. if (![[NSFileManager defaultManager] fileExistsAtPath:giftPath]) {
  36. [[NSFileManager defaultManager] createDirectoryAtPath:giftPath withIntermediateDirectories:NO attributes:nil error:nil];
  37. }
  38. NSString *watermarkPath = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"watermark"];
  39. if (![[NSFileManager defaultManager] fileExistsAtPath:watermarkPath]) {
  40. [[NSFileManager defaultManager] createDirectoryAtPath:watermarkPath withIntermediateDirectories:NO attributes:nil error:nil];
  41. }
  42. NSString *maskPath = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"mask"];
  43. if (![[NSFileManager defaultManager] fileExistsAtPath:maskPath]) {
  44. [[NSFileManager defaultManager] createDirectoryAtPath:maskPath withIntermediateDirectories:NO attributes:nil error:nil];
  45. }
  46. NSString *lvmuPath = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"greenscreen"];
  47. if (![[NSFileManager defaultManager] fileExistsAtPath:lvmuPath]) {
  48. [[NSFileManager defaultManager] createDirectoryAtPath:lvmuPath withIntermediateDirectories:NO attributes:nil error:nil];
  49. }
  50. // 拷贝本地贴纸文件到沙盒
  51. NSString *localPath1 =
  52. [[[NSBundle mainBundle] pathForResource:@"TiSDKResource" ofType:@"bundle"] stringByAppendingPathComponent:@"sticker"];
  53. NSArray *dirArr1 = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:localPath1 error:NULL];
  54. for (NSString *pathName in dirArr1) {
  55. if (![[NSFileManager defaultManager] fileExistsAtPath:[localPath1 stringByAppendingPathComponent:pathName]]) {
  56. [[NSFileManager defaultManager] copyItemAtPath:[localPath1 stringByAppendingPathComponent:pathName] toPath:[localPath1 stringByAppendingPathComponent:pathName] error:NULL];
  57. }
  58. }
  59. // 拷贝本地礼物文件到沙盒
  60. NSString *localPath2 =
  61. [[[NSBundle mainBundle] pathForResource:@"TiSDKResource" ofType:@"bundle"] stringByAppendingPathComponent:@"gift"];
  62. NSArray *dirArr2 = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:localPath2 error:NULL];
  63. for (NSString *pathName in dirArr2) {
  64. if (![[NSFileManager defaultManager] fileExistsAtPath:[localPath2 stringByAppendingPathComponent:pathName]]) {
  65. [[NSFileManager defaultManager] copyItemAtPath:[localPath2 stringByAppendingPathComponent:pathName] toPath:[localPath2 stringByAppendingPathComponent:pathName] error:NULL];
  66. }
  67. }
  68. // 拷贝本地水印文件到沙盒
  69. NSString *localPath3 =
  70. [[[NSBundle mainBundle] pathForResource:@"TiSDKResource" ofType:@"bundle"] stringByAppendingPathComponent:@"watermark"];
  71. NSArray *dirArr3 = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:localPath3 error:NULL];
  72. for (NSString *pathName in dirArr3) {
  73. if (![[NSFileManager defaultManager] fileExistsAtPath:[localPath3 stringByAppendingPathComponent:pathName]]) {
  74. [[NSFileManager defaultManager] copyItemAtPath:[localPath3 stringByAppendingPathComponent:pathName] toPath:[localPath3 stringByAppendingPathComponent:pathName] error:NULL];
  75. }
  76. }
  77. // 拷贝本地面具文件到沙盒
  78. NSString *localPath4 =
  79. [[[NSBundle mainBundle] pathForResource:@"TiSDKResource" ofType:@"bundle"] stringByAppendingPathComponent:@"mask"];
  80. NSArray *dirArr4 = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:localPath4 error:NULL];
  81. for (NSString *pathName in dirArr4) {
  82. if (![[NSFileManager defaultManager] fileExistsAtPath:[localPath4 stringByAppendingPathComponent:pathName]]) {
  83. [[NSFileManager defaultManager] copyItemAtPath:[localPath4 stringByAppendingPathComponent:pathName] toPath:[localPath4 stringByAppendingPathComponent:pathName] error:NULL];
  84. }
  85. }
  86. // 拷贝本地绿幕文件到沙盒
  87. NSString *localPath5 =
  88. [[[NSBundle mainBundle] pathForResource:@"TiSDKResource" ofType:@"bundle"] stringByAppendingPathComponent:@"greenscreen"];
  89. NSArray *dirArr5 = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:localPath5 error:NULL];
  90. for (NSString *pathName in dirArr5) {
  91. if (![[NSFileManager defaultManager] fileExistsAtPath:[localPath5 stringByAppendingPathComponent:pathName]]) {
  92. [[NSFileManager defaultManager] copyItemAtPath:[localPath5 stringByAppendingPathComponent:pathName] toPath:[localPath5 stringByAppendingPathComponent:pathName] error:NULL];
  93. }
  94. }
  95. }
  96. return self;
  97. }
  98. @end