├── Podfile ├── Podfile.lock ├── Pods ├── CTMediator │ ├── CTMediator │ │ └── CTMediator │ │ │ ├── CTMediator.h │ │ │ └── CTMediator.m │ ├── FILE_LICENSE │ └── readme.md ├── Headers │ ├── Private │ │ ├── CTMediator │ │ │ └── CTMediator.h │ │ ├── WGXibPersonKit │ │ │ ├── Target_xibPersonViewController.h │ │ │ └── WGXibPersonViewController.h │ │ ├── wgCommonKit │ │ │ └── UIImage+wgBundle.h │ │ ├── wgPersonInfoCatogeryKit │ │ │ └── CTMediator+TAPersonInfo.h │ │ ├── wgPersonInfoKit │ │ │ ├── Target_WGPersonInfoViewController.h │ │ │ └── WGPersonInfoViewController.h │ │ ├── wgPersonPrefenceKit │ │ │ ├── Target_WGPersonPreferenceViewController.h │ │ │ └── WGPersonPreferenceViewController.h │ │ ├── wgPersonPrefrenceCatogeryKit │ │ │ └── CTMediator+TAPersonPreference.h │ │ └── wgXibPersonCatogeryKit │ │ │ └── CTMediator+TAXibPerson.h │ └── Public │ │ ├── CTMediator │ │ └── CTMediator.h │ │ ├── WGXibPersonKit │ │ ├── Target_xibPersonViewController.h │ │ └── WGXibPersonViewController.h │ │ ├── wgCommonKit │ │ └── UIImage+wgBundle.h │ │ ├── wgPersonInfoCatogeryKit │ │ └── CTMediator+TAPersonInfo.h │ │ ├── wgPersonInfoKit │ │ ├── Target_WGPersonInfoViewController.h │ │ └── WGPersonInfoViewController.h │ │ ├── wgPersonPrefenceKit │ │ ├── Target_WGPersonPreferenceViewController.h │ │ └── WGPersonPreferenceViewController.h │ │ ├── wgPersonPrefrenceCatogeryKit │ │ └── CTMediator+TAPersonPreference.h │ │ └── wgXibPersonCatogeryKit │ │ └── CTMediator+TAXibPerson.h ├── Manifest.lock ├── Pods.xcodeproj │ ├── project.pbxproj │ └── xcuserdata │ │ └── wanggang.xcuserdatad │ │ └── xcschemes │ │ ├── CTMediator.xcscheme │ │ ├── Pods-WGLearnMTMediatorDemo.xcscheme │ │ ├── WGXibPersonKit-WGXibPersonKit.xcscheme │ │ ├── WGXibPersonKit.xcscheme │ │ ├── wgCommonKit.xcscheme │ │ ├── wgPersonInfoCatogeryKit.xcscheme │ │ ├── wgPersonInfoKit-wgPersonInfoKit.xcscheme │ │ ├── wgPersonInfoKit.xcscheme │ │ ├── wgPersonPrefenceKit.xcscheme │ │ ├── wgPersonPrefrenceCatogeryKit.xcscheme │ │ ├── wgXibPersonCatogeryKit.xcscheme │ │ └── xcschememanagement.plist ├── Target Support Files │ ├── CTMediator │ │ ├── CTMediator-dummy.m │ │ ├── CTMediator-prefix.pch │ │ └── CTMediator.xcconfig │ ├── Pods-WGLearnMTMediatorDemo │ │ ├── Pods-WGLearnMTMediatorDemo-acknowledgements.markdown │ │ ├── Pods-WGLearnMTMediatorDemo-acknowledgements.plist │ │ ├── Pods-WGLearnMTMediatorDemo-dummy.m │ │ ├── Pods-WGLearnMTMediatorDemo-frameworks.sh │ │ ├── Pods-WGLearnMTMediatorDemo-resources.sh │ │ ├── Pods-WGLearnMTMediatorDemo.debug.xcconfig │ │ └── Pods-WGLearnMTMediatorDemo.release.xcconfig │ ├── WGXibPersonKit │ │ ├── ResourceBundle-WGXibPersonKit-Info.plist │ │ ├── WGXibPersonKit-dummy.m │ │ ├── WGXibPersonKit-prefix.pch │ │ └── WGXibPersonKit.xcconfig │ ├── wgCommonKit │ │ ├── wgCommonKit-dummy.m │ │ ├── wgCommonKit-prefix.pch │ │ └── wgCommonKit.xcconfig │ ├── wgPersonInfoCatogeryKit │ │ ├── wgPersonInfoCatogeryKit-dummy.m │ │ ├── wgPersonInfoCatogeryKit-prefix.pch │ │ └── wgPersonInfoCatogeryKit.xcconfig │ ├── wgPersonInfoKit │ │ ├── ResourceBundle-wgPersonInfoKit-Info.plist │ │ ├── wgPersonInfoKit-dummy.m │ │ ├── wgPersonInfoKit-prefix.pch │ │ └── wgPersonInfoKit.xcconfig │ ├── wgPersonPrefenceKit │ │ ├── wgPersonPrefenceKit-dummy.m │ │ ├── wgPersonPrefenceKit-prefix.pch │ │ └── wgPersonPrefenceKit.xcconfig │ ├── wgPersonPrefrenceCatogeryKit │ │ ├── wgPersonPrefrenceCatogeryKit-dummy.m │ │ ├── wgPersonPrefrenceCatogeryKit-prefix.pch │ │ └── wgPersonPrefrenceCatogeryKit.xcconfig │ └── wgXibPersonCatogeryKit │ │ ├── wgXibPersonCatogeryKit-dummy.m │ │ ├── wgXibPersonCatogeryKit-prefix.pch │ │ └── wgXibPersonCatogeryKit.xcconfig ├── WGXibPersonKit │ ├── LICENSE │ ├── README.md │ └── WGXibPersonKit │ │ ├── Assets │ │ ├── Group@1x.png │ │ ├── Group@2x.png │ │ ├── Group@3x.png │ │ └── WGXibPersonViewController.xib │ │ └── Classes │ │ ├── ReplaceMe.m │ │ └── TAXibPerxon │ │ ├── NSBundle+wgSubBundle.h │ │ ├── NSBundle+wgSubBundle.m │ │ ├── Target_xibPersonViewController.h │ │ ├── Target_xibPersonViewController.m │ │ ├── WGXibPersonViewController.h │ │ └── WGXibPersonViewController.m ├── wgCommonKit │ ├── LICENSE │ ├── README.md │ └── wgCommonKit │ │ └── Classes │ │ ├── ReplaceMe.m │ │ └── wgCommon │ │ ├── UIImage+wgBundle.h │ │ └── UIImage+wgBundle.m ├── wgPersonInfoCatogeryKit │ ├── LICENSE │ ├── README.md │ └── wgPersonInfoCatogeryKit │ │ └── Classes │ │ ├── ReplaceMe.m │ │ └── wgPersonInfoCatogery │ │ ├── CTMediator+TAPersonInfo.h │ │ └── CTMediator+TAPersonInfo.m ├── wgPersonInfoKit │ ├── LICENSE │ ├── README.md │ └── wgPersonInfoKit │ │ ├── Assets │ │ ├── Group@1x.png │ │ ├── Group@2x.png │ │ └── Group@3x.png │ │ └── Classes │ │ ├── ReplaceMe.m │ │ └── TAPersonInfo │ │ ├── Target_WGPersonInfoViewController.h │ │ ├── Target_WGPersonInfoViewController.m │ │ ├── WGPersonInfoViewController.h │ │ └── WGPersonInfoViewController.m ├── wgPersonPrefenceKit │ ├── LICENSE │ ├── README.md │ └── wgPersonPrefenceKit │ │ └── Classes │ │ ├── ReplaceMe.m │ │ └── TAPersonPrefrence │ │ ├── Target_WGPersonPreferenceViewController.h │ │ ├── Target_WGPersonPreferenceViewController.m │ │ ├── WGPersonPreferenceViewController.h │ │ └── WGPersonPreferenceViewController.m ├── wgPersonPrefrenceCatogeryKit │ ├── LICENSE │ ├── README.md │ └── wgPersonPrefrenceCatogeryKit │ │ └── Classes │ │ ├── ReplaceMe.m │ │ └── wgPersonPrefrenceCatogery │ │ ├── CTMediator+TAPersonPreference.h │ │ └── CTMediator+TAPersonPreference.m └── wgXibPersonCatogeryKit │ ├── LICENSE │ ├── README.md │ └── wgXibPersonCatogeryKit │ └── Classes │ ├── ReplaceMe.m │ └── wgXibPersonCategory │ ├── CTMediator+TAXibPerson.h │ └── CTMediator+TAXibPerson.m ├── WGLearnMTMediatorDemo.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── xcuserdata │ └── wanggang.xcuserdatad │ └── xcschemes │ └── xcschememanagement.plist ├── WGLearnMTMediatorDemo.xcworkspace ├── contents.xcworkspacedata ├── xcshareddata │ └── IDEWorkspaceChecks.plist └── xcuserdata │ └── wanggang.xcuserdatad │ └── xcdebugger │ └── Breakpoints_v2.xcbkptlist ├── WGLearnMTMediatorDemo ├── AppDelegate.h ├── AppDelegate.m ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json ├── Base.lproj │ └── LaunchScreen.storyboard ├── Info.plist ├── ViewController.h ├── ViewController.m └── main.m ├── WGLearnMTMediatorDemoTests ├── Info.plist └── WGLearnMTMediatorDemoTests.m └── WGLearnMTMediatorDemoUITests ├── Info.plist └── WGLearnMTMediatorDemoUITests.m /Podfile: -------------------------------------------------------------------------------- 1 | source 'https://github.com/wgModularization/WGModulSpecs.git' 2 | source 'https://github.com/CocoaPods/Specs.git' 3 | 4 | target 'WGLearnMTMediatorDemo' do 5 | 6 | pod 'wgPersonInfoKit', '~> 2' 7 | pod 'wgPersonInfoCatogeryKit' 8 | pod 'wgPersonPrefenceKit' 9 | pod 'wgPersonPrefrenceCatogeryKit' 10 | pod 'WGXibPersonKit' 11 | pod 'wgXibPersonCatogeryKit' 12 | 13 | end 14 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - CTMediator (18) 3 | - wgCommonKit (1) 4 | - wgPersonInfoCatogeryKit (1): 5 | - CTMediator 6 | - wgPersonInfoKit (2): 7 | - wgCommonKit 8 | - wgPersonPrefrenceCatogeryKit 9 | - wgPersonPrefenceKit (1) 10 | - wgPersonPrefrenceCatogeryKit (1): 11 | - CTMediator 12 | - wgXibPersonCatogeryKit (0.1.0): 13 | - CTMediator 14 | - WGXibPersonKit (0.1.3): 15 | - wgCommonKit 16 | - wgXibPersonCatogeryKit 17 | 18 | DEPENDENCIES: 19 | - wgPersonInfoCatogeryKit 20 | - wgPersonInfoKit (~> 2) 21 | - wgPersonPrefenceKit 22 | - wgPersonPrefrenceCatogeryKit 23 | - wgXibPersonCatogeryKit 24 | - WGXibPersonKit 25 | 26 | SPEC REPOS: 27 | https://github.com/cocoapods/specs.git: 28 | - CTMediator 29 | https://github.com/wgModularization/WGModulSpecs.git: 30 | - wgCommonKit 31 | - wgPersonInfoCatogeryKit 32 | - wgPersonInfoKit 33 | - wgPersonPrefenceKit 34 | - wgPersonPrefrenceCatogeryKit 35 | - wgXibPersonCatogeryKit 36 | - WGXibPersonKit 37 | 38 | SPEC CHECKSUMS: 39 | CTMediator: 420e9d90f9f1fd740caf2238ed7ed64dc621c5b7 40 | wgCommonKit: 05298657b11ba2ef731133b9b6c6d27841745545 41 | wgPersonInfoCatogeryKit: 7f7141524a3a106f726b11ededeaaaeb731415fd 42 | wgPersonInfoKit: 3242de7428aedd975d91a2942b92cab491ecc08b 43 | wgPersonPrefenceKit: 894211938c9fcce7cab8594576c98cab11c63bcc 44 | wgPersonPrefrenceCatogeryKit: 601066b5aa42f366d6ae5bd6a7f5a5bd42ba5d43 45 | wgXibPersonCatogeryKit: 540bba40d1018fc551415219fa53c4ac917ec073 46 | WGXibPersonKit: 6f3be5a2fd7f570fbc0dac48d05c98cdb6f22e9e 47 | 48 | PODFILE CHECKSUM: d2607b9ec1ea2df495df3f9972921cce8e08b6fb 49 | 50 | COCOAPODS: 1.5.3 51 | -------------------------------------------------------------------------------- /Pods/CTMediator/CTMediator/CTMediator/CTMediator.h: -------------------------------------------------------------------------------- 1 | // 2 | // CTMediator.h 3 | // CTMediator 4 | // 5 | // Created by casa on 16/3/13. 6 | // Copyright © 2016年 casa. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface CTMediator : NSObject 12 | 13 | + (instancetype)sharedInstance; 14 | 15 | // 远程App调用入口 16 | - (id)performActionWithUrl:(NSURL *)url completion:(void(^)(NSDictionary *info))completion; 17 | // 本地组件调用入口 18 | - (id)performTarget:(NSString *)targetName action:(NSString *)actionName params:(NSDictionary *)params shouldCacheTarget:(BOOL)shouldCacheTarget; 19 | - (void)releaseCachedTargetWithTargetName:(NSString *)targetName; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Pods/CTMediator/CTMediator/CTMediator/CTMediator.m: -------------------------------------------------------------------------------- 1 | // 2 | // CTMediator.m 3 | // CTMediator 4 | // 5 | // Created by casa on 16/3/13. 6 | // Copyright © 2016年 casa. All rights reserved. 7 | // 8 | 9 | #import "CTMediator.h" 10 | #import 11 | 12 | @interface CTMediator () 13 | 14 | @property (nonatomic, strong) NSMutableDictionary *cachedTarget; 15 | 16 | @end 17 | 18 | @implementation CTMediator 19 | 20 | #pragma mark - public methods 21 | + (instancetype)sharedInstance 22 | { 23 | static CTMediator *mediator; 24 | static dispatch_once_t onceToken; 25 | dispatch_once(&onceToken, ^{ 26 | mediator = [[CTMediator alloc] init]; 27 | }); 28 | return mediator; 29 | } 30 | 31 | /* 32 | scheme://[target]/[action]?[params] 33 | 34 | url sample: 35 | aaa://targetA/actionB?id=1234 36 | */ 37 | 38 | - (id)performActionWithUrl:(NSURL *)url completion:(void (^)(NSDictionary *))completion 39 | { 40 | NSMutableDictionary *params = [[NSMutableDictionary alloc] init]; 41 | NSString *urlString = [url query]; 42 | for (NSString *param in [urlString componentsSeparatedByString:@"&"]) { 43 | NSArray *elts = [param componentsSeparatedByString:@"="]; 44 | if([elts count] < 2) continue; 45 | [params setObject:[elts lastObject] forKey:[elts firstObject]]; 46 | } 47 | 48 | // 这里这么写主要是出于安全考虑,防止黑客通过远程方式调用本地模块。这里的做法足以应对绝大多数场景,如果要求更加严苛,也可以做更加复杂的安全逻辑。 49 | NSString *actionName = [url.path stringByReplacingOccurrencesOfString:@"/" withString:@""]; 50 | if ([actionName hasPrefix:@"native"]) { 51 | return @(NO); 52 | } 53 | 54 | // 这个demo针对URL的路由处理非常简单,就只是取对应的target名字和method名字,但这已经足以应对绝大部份需求。如果需要拓展,可以在这个方法调用之前加入完整的路由逻辑 55 | id result = [self performTarget:url.host action:actionName params:params shouldCacheTarget:NO]; 56 | if (completion) { 57 | if (result) { 58 | completion(@{@"result":result}); 59 | } else { 60 | completion(nil); 61 | } 62 | } 63 | return result; 64 | } 65 | 66 | - (id)performTarget:(NSString *)targetName action:(NSString *)actionName params:(NSDictionary *)params shouldCacheTarget:(BOOL)shouldCacheTarget 67 | { 68 | 69 | NSString *targetClassString = [NSString stringWithFormat:@"Target_%@", targetName]; 70 | NSString *actionString = [NSString stringWithFormat:@"Action_%@:", actionName]; 71 | Class targetClass; 72 | 73 | NSObject *target = self.cachedTarget[targetClassString]; 74 | if (target == nil) { 75 | targetClass = NSClassFromString(targetClassString); 76 | target = [[targetClass alloc] init]; 77 | } 78 | 79 | SEL action = NSSelectorFromString(actionString); 80 | 81 | if (target == nil) { 82 | // 这里是处理无响应请求的地方之一,这个demo做得比较简单,如果没有可以响应的target,就直接return了。实际开发过程中是可以事先给一个固定的target专门用于在这个时候顶上,然后处理这种请求的 83 | [self NoTargetActionResponseWithTargetString:targetClassString selectorString:actionString originParams:params]; 84 | return nil; 85 | } 86 | 87 | if (shouldCacheTarget) { 88 | self.cachedTarget[targetClassString] = target; 89 | } 90 | 91 | if ([target respondsToSelector:action]) { 92 | return [self safePerformAction:action target:target params:params]; 93 | } else { 94 | // 有可能target是Swift对象 95 | actionString = [NSString stringWithFormat:@"Action_%@WithParams:", actionName]; 96 | action = NSSelectorFromString(actionString); 97 | if ([target respondsToSelector:action]) { 98 | return [self safePerformAction:action target:target params:params]; 99 | } else { 100 | // 这里是处理无响应请求的地方,如果无响应,则尝试调用对应target的notFound方法统一处理 101 | SEL action = NSSelectorFromString(@"notFound:"); 102 | if ([target respondsToSelector:action]) { 103 | return [self safePerformAction:action target:target params:params]; 104 | } else { 105 | // 这里也是处理无响应请求的地方,在notFound都没有的时候,这个demo是直接return了。实际开发过程中,可以用前面提到的固定的target顶上的。 106 | [self NoTargetActionResponseWithTargetString:targetClassString selectorString:actionString originParams:params]; 107 | [self.cachedTarget removeObjectForKey:targetClassString]; 108 | return nil; 109 | } 110 | } 111 | } 112 | } 113 | 114 | - (void)releaseCachedTargetWithTargetName:(NSString *)targetName 115 | { 116 | NSString *targetClassString = [NSString stringWithFormat:@"Target_%@", targetName]; 117 | [self.cachedTarget removeObjectForKey:targetClassString]; 118 | } 119 | 120 | #pragma mark - private methods 121 | - (void)NoTargetActionResponseWithTargetString:(NSString *)targetString selectorString:(NSString *)selectorString originParams:(NSDictionary *)originParams 122 | { 123 | SEL action = NSSelectorFromString(@"Action_response:"); 124 | NSObject *target = [[NSClassFromString(@"Target_NoTargetAction") alloc] init]; 125 | 126 | NSMutableDictionary *params = [[NSMutableDictionary alloc] init]; 127 | params[@"originParams"] = originParams; 128 | params[@"targetString"] = targetString; 129 | params[@"selectorString"] = selectorString; 130 | 131 | [self safePerformAction:action target:target params:params]; 132 | } 133 | 134 | - (id)safePerformAction:(SEL)action target:(NSObject *)target params:(NSDictionary *)params 135 | { 136 | NSMethodSignature* methodSig = [target methodSignatureForSelector:action]; 137 | if(methodSig == nil) { 138 | return nil; 139 | } 140 | const char* retType = [methodSig methodReturnType]; 141 | 142 | if (strcmp(retType, @encode(void)) == 0) { 143 | NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSig]; 144 | [invocation setArgument:¶ms atIndex:2]; 145 | [invocation setSelector:action]; 146 | [invocation setTarget:target]; 147 | [invocation invoke]; 148 | return nil; 149 | } 150 | 151 | if (strcmp(retType, @encode(NSInteger)) == 0) { 152 | NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSig]; 153 | [invocation setArgument:¶ms atIndex:2]; 154 | [invocation setSelector:action]; 155 | [invocation setTarget:target]; 156 | [invocation invoke]; 157 | NSInteger result = 0; 158 | [invocation getReturnValue:&result]; 159 | return @(result); 160 | } 161 | 162 | if (strcmp(retType, @encode(BOOL)) == 0) { 163 | NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSig]; 164 | [invocation setArgument:¶ms atIndex:2]; 165 | [invocation setSelector:action]; 166 | [invocation setTarget:target]; 167 | [invocation invoke]; 168 | BOOL result = 0; 169 | [invocation getReturnValue:&result]; 170 | return @(result); 171 | } 172 | 173 | if (strcmp(retType, @encode(CGFloat)) == 0) { 174 | NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSig]; 175 | [invocation setArgument:¶ms atIndex:2]; 176 | [invocation setSelector:action]; 177 | [invocation setTarget:target]; 178 | [invocation invoke]; 179 | CGFloat result = 0; 180 | [invocation getReturnValue:&result]; 181 | return @(result); 182 | } 183 | 184 | if (strcmp(retType, @encode(NSUInteger)) == 0) { 185 | NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSig]; 186 | [invocation setArgument:¶ms atIndex:2]; 187 | [invocation setSelector:action]; 188 | [invocation setTarget:target]; 189 | [invocation invoke]; 190 | NSUInteger result = 0; 191 | [invocation getReturnValue:&result]; 192 | return @(result); 193 | } 194 | 195 | #pragma clang diagnostic push 196 | #pragma clang diagnostic ignored "-Warc-performSelector-leaks" 197 | return [target performSelector:action withObject:params]; 198 | #pragma clang diagnostic pop 199 | } 200 | 201 | #pragma mark - getters and setters 202 | - (NSMutableDictionary *)cachedTarget 203 | { 204 | if (_cachedTarget == nil) { 205 | _cachedTarget = [[NSMutableDictionary alloc] init]; 206 | } 207 | return _cachedTarget; 208 | } 209 | 210 | @end 211 | -------------------------------------------------------------------------------- /Pods/CTMediator/FILE_LICENSE: -------------------------------------------------------------------------------- 1 | MIT 2 | -------------------------------------------------------------------------------- /Pods/CTMediator/readme.md: -------------------------------------------------------------------------------- 1 | CTMediator 2 | ========== 3 | 4 | objective-c: 5 | 6 | ``` 7 | pod "CTMediator" 8 | ``` 9 | 10 | swift: 11 | 12 | ``` 13 | use_frameworks! 14 | pod "CTMediator" 15 | ``` 16 | 17 | --- 18 | 19 | 20 | `CTMediator` helps you to devide your project into multi-project, and use `Target-Action` pattern to let subprojects to communicate with each other. *with no regist process!* 21 | 22 | you can check demo for more details: 23 | 24 | [Origin project](https://github.com/ModulizationDemo/MainProject) 25 | 26 | [Modulized Main Project with CTMediator](https://github.com/ModulizationDemo/ModulizedMainProject) 27 | 28 | [Demos](https://github.com/ModulizationDemo) 29 | 30 | [Swift Demo](https://github.com/ModulizationDemo/SwfitDemo) 31 | 32 | add private repo before you run demos: 33 | 34 | ``` 35 | pod repo add PrivatePods https://github.com/ModulizationDemo/PrivatePods.git 36 | ``` 37 | 38 | remember to run `pod install` before you run the demo! 39 | 40 | --- 41 | 42 | [Origin project](https://github.com/ModulizationDemo/MainProject) 43 | 44 | [Modulized Main Project with CTMediator](https://github.com/ModulizationDemo/ModulizedMainProject) 45 | 46 | [Demos](https://github.com/ModulizationDemo) 47 | 48 | [Swift Demo](https://github.com/ModulizationDemo/SwfitDemo) 49 | 50 | 跑demo时先添加私有库: 51 | 52 | ``` 53 | pod repo add PrivatePods https://github.com/ModulizationDemo/PrivatePods.git 54 | ``` 55 | 56 | 然后就可以`pod install`了 57 | 58 | --- 59 | 60 | [iOS应用架构谈 组件化方案](http://casatwy.com/iOS-Modulization.html) 61 | 62 | [在现有工程中实施基于CTMediator的组件化方案](http://casatwy.com/modulization_in_action.html) 63 | 64 | --- 65 | 66 | 本工程其实也是个Demo 67 | 68 | `Category`目录在实际工程中是单独的一个repo,调用者通过依赖category这个repo来完成功能调度。一般来说是每一个业务对应一个category的repo。因此调用者需要调度哪个业务,就依赖哪个业务的category。category这个repo由对应提供服务的业务来维护。 69 | 70 | `CTMediator`目录在实际工程中也是一个单独的repo,仅用于存放中间件。被每一个业务线各自维护的category repo所依赖。 71 | 72 | `DemoModule`目录是实际提供服务的业务,这个在实际工程中也是一个单独的repo。这个repo不被任何人所依赖,这个repo通过target-action来提供被调度的功能,然后由category repo通过runtime调度。 73 | 74 | --- 75 | 76 | `CTMediator` helps you to devide your project into multi-project, and use `Target-Action` pattern to let subprojects to communicate with each other. 77 | 78 | you can check demo for more details: 79 | 80 | [Demo](https://github.com/ModulizationDemo) 81 | 82 | [Swift Demo](https://github.com/ModulizationDemo/SwfitDemo) 83 | -------------------------------------------------------------------------------- /Pods/Headers/Private/CTMediator/CTMediator.h: -------------------------------------------------------------------------------- 1 | ../../../CTMediator/CTMediator/CTMediator/CTMediator.h -------------------------------------------------------------------------------- /Pods/Headers/Private/WGXibPersonKit/Target_xibPersonViewController.h: -------------------------------------------------------------------------------- 1 | ../../../WGXibPersonKit/WGXibPersonKit/Classes/TAXibPerxon/Target_xibPersonViewController.h -------------------------------------------------------------------------------- /Pods/Headers/Private/WGXibPersonKit/WGXibPersonViewController.h: -------------------------------------------------------------------------------- 1 | ../../../WGXibPersonKit/WGXibPersonKit/Classes/TAXibPerxon/WGXibPersonViewController.h -------------------------------------------------------------------------------- /Pods/Headers/Private/wgCommonKit/UIImage+wgBundle.h: -------------------------------------------------------------------------------- 1 | ../../../wgCommonKit/wgCommonKit/Classes/wgCommon/UIImage+wgBundle.h -------------------------------------------------------------------------------- /Pods/Headers/Private/wgPersonInfoCatogeryKit/CTMediator+TAPersonInfo.h: -------------------------------------------------------------------------------- 1 | ../../../wgPersonInfoCatogeryKit/wgPersonInfoCatogeryKit/Classes/wgPersonInfoCatogery/CTMediator+TAPersonInfo.h -------------------------------------------------------------------------------- /Pods/Headers/Private/wgPersonInfoKit/Target_WGPersonInfoViewController.h: -------------------------------------------------------------------------------- 1 | ../../../wgPersonInfoKit/wgPersonInfoKit/Classes/TAPersonInfo/Target_WGPersonInfoViewController.h -------------------------------------------------------------------------------- /Pods/Headers/Private/wgPersonInfoKit/WGPersonInfoViewController.h: -------------------------------------------------------------------------------- 1 | ../../../wgPersonInfoKit/wgPersonInfoKit/Classes/TAPersonInfo/WGPersonInfoViewController.h -------------------------------------------------------------------------------- /Pods/Headers/Private/wgPersonPrefenceKit/Target_WGPersonPreferenceViewController.h: -------------------------------------------------------------------------------- 1 | ../../../wgPersonPrefenceKit/wgPersonPrefenceKit/Classes/TAPersonPrefrence/Target_WGPersonPreferenceViewController.h -------------------------------------------------------------------------------- /Pods/Headers/Private/wgPersonPrefenceKit/WGPersonPreferenceViewController.h: -------------------------------------------------------------------------------- 1 | ../../../wgPersonPrefenceKit/wgPersonPrefenceKit/Classes/TAPersonPrefrence/WGPersonPreferenceViewController.h -------------------------------------------------------------------------------- /Pods/Headers/Private/wgPersonPrefrenceCatogeryKit/CTMediator+TAPersonPreference.h: -------------------------------------------------------------------------------- 1 | ../../../wgPersonPrefrenceCatogeryKit/wgPersonPrefrenceCatogeryKit/Classes/wgPersonPrefrenceCatogery/CTMediator+TAPersonPreference.h -------------------------------------------------------------------------------- /Pods/Headers/Private/wgXibPersonCatogeryKit/CTMediator+TAXibPerson.h: -------------------------------------------------------------------------------- 1 | ../../../wgXibPersonCatogeryKit/wgXibPersonCatogeryKit/Classes/wgXibPersonCategory/CTMediator+TAXibPerson.h -------------------------------------------------------------------------------- /Pods/Headers/Public/CTMediator/CTMediator.h: -------------------------------------------------------------------------------- 1 | ../../../CTMediator/CTMediator/CTMediator/CTMediator.h -------------------------------------------------------------------------------- /Pods/Headers/Public/WGXibPersonKit/Target_xibPersonViewController.h: -------------------------------------------------------------------------------- 1 | ../../../WGXibPersonKit/WGXibPersonKit/Classes/TAXibPerxon/Target_xibPersonViewController.h -------------------------------------------------------------------------------- /Pods/Headers/Public/WGXibPersonKit/WGXibPersonViewController.h: -------------------------------------------------------------------------------- 1 | ../../../WGXibPersonKit/WGXibPersonKit/Classes/TAXibPerxon/WGXibPersonViewController.h -------------------------------------------------------------------------------- /Pods/Headers/Public/wgCommonKit/UIImage+wgBundle.h: -------------------------------------------------------------------------------- 1 | ../../../wgCommonKit/wgCommonKit/Classes/wgCommon/UIImage+wgBundle.h -------------------------------------------------------------------------------- /Pods/Headers/Public/wgPersonInfoCatogeryKit/CTMediator+TAPersonInfo.h: -------------------------------------------------------------------------------- 1 | ../../../wgPersonInfoCatogeryKit/wgPersonInfoCatogeryKit/Classes/wgPersonInfoCatogery/CTMediator+TAPersonInfo.h -------------------------------------------------------------------------------- /Pods/Headers/Public/wgPersonInfoKit/Target_WGPersonInfoViewController.h: -------------------------------------------------------------------------------- 1 | ../../../wgPersonInfoKit/wgPersonInfoKit/Classes/TAPersonInfo/Target_WGPersonInfoViewController.h -------------------------------------------------------------------------------- /Pods/Headers/Public/wgPersonInfoKit/WGPersonInfoViewController.h: -------------------------------------------------------------------------------- 1 | ../../../wgPersonInfoKit/wgPersonInfoKit/Classes/TAPersonInfo/WGPersonInfoViewController.h -------------------------------------------------------------------------------- /Pods/Headers/Public/wgPersonPrefenceKit/Target_WGPersonPreferenceViewController.h: -------------------------------------------------------------------------------- 1 | ../../../wgPersonPrefenceKit/wgPersonPrefenceKit/Classes/TAPersonPrefrence/Target_WGPersonPreferenceViewController.h -------------------------------------------------------------------------------- /Pods/Headers/Public/wgPersonPrefenceKit/WGPersonPreferenceViewController.h: -------------------------------------------------------------------------------- 1 | ../../../wgPersonPrefenceKit/wgPersonPrefenceKit/Classes/TAPersonPrefrence/WGPersonPreferenceViewController.h -------------------------------------------------------------------------------- /Pods/Headers/Public/wgPersonPrefrenceCatogeryKit/CTMediator+TAPersonPreference.h: -------------------------------------------------------------------------------- 1 | ../../../wgPersonPrefrenceCatogeryKit/wgPersonPrefrenceCatogeryKit/Classes/wgPersonPrefrenceCatogery/CTMediator+TAPersonPreference.h -------------------------------------------------------------------------------- /Pods/Headers/Public/wgXibPersonCatogeryKit/CTMediator+TAXibPerson.h: -------------------------------------------------------------------------------- 1 | ../../../wgXibPersonCatogeryKit/wgXibPersonCatogeryKit/Classes/wgXibPersonCategory/CTMediator+TAXibPerson.h -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - CTMediator (18) 3 | - wgCommonKit (1) 4 | - wgPersonInfoCatogeryKit (1): 5 | - CTMediator 6 | - wgPersonInfoKit (2): 7 | - wgCommonKit 8 | - wgPersonPrefrenceCatogeryKit 9 | - wgPersonPrefenceKit (1) 10 | - wgPersonPrefrenceCatogeryKit (1): 11 | - CTMediator 12 | - wgXibPersonCatogeryKit (0.1.0): 13 | - CTMediator 14 | - WGXibPersonKit (0.1.3): 15 | - wgCommonKit 16 | - wgXibPersonCatogeryKit 17 | 18 | DEPENDENCIES: 19 | - wgPersonInfoCatogeryKit 20 | - wgPersonInfoKit (~> 2) 21 | - wgPersonPrefenceKit 22 | - wgPersonPrefrenceCatogeryKit 23 | - wgXibPersonCatogeryKit 24 | - WGXibPersonKit 25 | 26 | SPEC REPOS: 27 | https://github.com/cocoapods/specs.git: 28 | - CTMediator 29 | https://github.com/wgModularization/WGModulSpecs.git: 30 | - wgCommonKit 31 | - wgPersonInfoCatogeryKit 32 | - wgPersonInfoKit 33 | - wgPersonPrefenceKit 34 | - wgPersonPrefrenceCatogeryKit 35 | - wgXibPersonCatogeryKit 36 | - WGXibPersonKit 37 | 38 | SPEC CHECKSUMS: 39 | CTMediator: 420e9d90f9f1fd740caf2238ed7ed64dc621c5b7 40 | wgCommonKit: 05298657b11ba2ef731133b9b6c6d27841745545 41 | wgPersonInfoCatogeryKit: 7f7141524a3a106f726b11ededeaaaeb731415fd 42 | wgPersonInfoKit: 3242de7428aedd975d91a2942b92cab491ecc08b 43 | wgPersonPrefenceKit: 894211938c9fcce7cab8594576c98cab11c63bcc 44 | wgPersonPrefrenceCatogeryKit: 601066b5aa42f366d6ae5bd6a7f5a5bd42ba5d43 45 | wgXibPersonCatogeryKit: 540bba40d1018fc551415219fa53c4ac917ec073 46 | WGXibPersonKit: 6f3be5a2fd7f570fbc0dac48d05c98cdb6f22e9e 47 | 48 | PODFILE CHECKSUM: d2607b9ec1ea2df495df3f9972921cce8e08b6fb 49 | 50 | COCOAPODS: 1.5.3 51 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/wanggang.xcuserdatad/xcschemes/CTMediator.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/wanggang.xcuserdatad/xcschemes/Pods-WGLearnMTMediatorDemo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/wanggang.xcuserdatad/xcschemes/WGXibPersonKit-WGXibPersonKit.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 45 | 46 | 52 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 66 | 67 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/wanggang.xcuserdatad/xcschemes/WGXibPersonKit.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/wanggang.xcuserdatad/xcschemes/wgCommonKit.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/wanggang.xcuserdatad/xcschemes/wgPersonInfoCatogeryKit.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/wanggang.xcuserdatad/xcschemes/wgPersonInfoKit-wgPersonInfoKit.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 45 | 46 | 52 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 66 | 67 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/wanggang.xcuserdatad/xcschemes/wgPersonInfoKit.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/wanggang.xcuserdatad/xcschemes/wgPersonPrefenceKit.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/wanggang.xcuserdatad/xcschemes/wgPersonPrefrenceCatogeryKit.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/wanggang.xcuserdatad/xcschemes/wgXibPersonCatogeryKit.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/wanggang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | CTMediator.xcscheme 8 | 9 | isShown 10 | 11 | orderHint 12 | 0 13 | 14 | Pods-WGLearnMTMediatorDemo.xcscheme 15 | 16 | isShown 17 | 18 | orderHint 19 | 1 20 | 21 | WGXibPersonKit-WGXibPersonKit.xcscheme 22 | 23 | isShown 24 | 25 | orderHint 26 | 10 27 | 28 | WGXibPersonKit.xcscheme 29 | 30 | isShown 31 | 32 | orderHint 33 | 9 34 | 35 | wgCommonKit.xcscheme 36 | 37 | isShown 38 | 39 | orderHint 40 | 2 41 | 42 | wgPersonInfoCatogeryKit.xcscheme 43 | 44 | isShown 45 | 46 | orderHint 47 | 3 48 | 49 | wgPersonInfoKit-wgPersonInfoKit.xcscheme 50 | 51 | isShown 52 | 53 | orderHint 54 | 5 55 | 56 | wgPersonInfoKit.xcscheme 57 | 58 | isShown 59 | 60 | orderHint 61 | 4 62 | 63 | wgPersonPrefenceKit.xcscheme 64 | 65 | isShown 66 | 67 | orderHint 68 | 6 69 | 70 | wgPersonPrefrenceCatogeryKit.xcscheme 71 | 72 | isShown 73 | 74 | orderHint 75 | 7 76 | 77 | wgXibPersonCatogeryKit.xcscheme 78 | 79 | isShown 80 | 81 | orderHint 82 | 8 83 | 84 | 85 | SuppressBuildableAutocreation 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /Pods/Target Support Files/CTMediator/CTMediator-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_CTMediator : NSObject 3 | @end 4 | @implementation PodsDummy_CTMediator 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/CTMediator/CTMediator-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/CTMediator/CTMediator.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CTMediator 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/CTMediator" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CTMediator" 4 | OTHER_LDFLAGS = -framework "UIKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/CTMediator 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-WGLearnMTMediatorDemo/Pods-WGLearnMTMediatorDemo-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## CTMediator 5 | 6 | MIT 7 | 8 | 9 | ## WGXibPersonKit 10 | 11 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 12 | 13 | Permission is hereby granted, free of charge, to any person obtaining a copy 14 | of this software and associated documentation files (the "Software"), to deal 15 | in the Software without restriction, including without limitation the rights 16 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 17 | copies of the Software, and to permit persons to whom the Software is 18 | furnished to do so, subject to the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be included in 21 | all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 26 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 28 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 29 | THE SOFTWARE. 30 | 31 | 32 | ## wgCommonKit 33 | 34 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 35 | 36 | Permission is hereby granted, free of charge, to any person obtaining a copy 37 | of this software and associated documentation files (the "Software"), to deal 38 | in the Software without restriction, including without limitation the rights 39 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 40 | copies of the Software, and to permit persons to whom the Software is 41 | furnished to do so, subject to the following conditions: 42 | 43 | The above copyright notice and this permission notice shall be included in 44 | all copies or substantial portions of the Software. 45 | 46 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 47 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 48 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 49 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 50 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 51 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 52 | THE SOFTWARE. 53 | 54 | 55 | ## wgPersonInfoCatogeryKit 56 | 57 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 58 | 59 | Permission is hereby granted, free of charge, to any person obtaining a copy 60 | of this software and associated documentation files (the "Software"), to deal 61 | in the Software without restriction, including without limitation the rights 62 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 63 | copies of the Software, and to permit persons to whom the Software is 64 | furnished to do so, subject to the following conditions: 65 | 66 | The above copyright notice and this permission notice shall be included in 67 | all copies or substantial portions of the Software. 68 | 69 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 70 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 71 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 72 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 73 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 74 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 75 | THE SOFTWARE. 76 | 77 | 78 | ## wgPersonInfoKit 79 | 80 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 81 | 82 | Permission is hereby granted, free of charge, to any person obtaining a copy 83 | of this software and associated documentation files (the "Software"), to deal 84 | in the Software without restriction, including without limitation the rights 85 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 86 | copies of the Software, and to permit persons to whom the Software is 87 | furnished to do so, subject to the following conditions: 88 | 89 | The above copyright notice and this permission notice shall be included in 90 | all copies or substantial portions of the Software. 91 | 92 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 93 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 94 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 95 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 96 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 97 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 98 | THE SOFTWARE. 99 | 100 | 101 | ## wgPersonPrefenceKit 102 | 103 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 104 | 105 | Permission is hereby granted, free of charge, to any person obtaining a copy 106 | of this software and associated documentation files (the "Software"), to deal 107 | in the Software without restriction, including without limitation the rights 108 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 109 | copies of the Software, and to permit persons to whom the Software is 110 | furnished to do so, subject to the following conditions: 111 | 112 | The above copyright notice and this permission notice shall be included in 113 | all copies or substantial portions of the Software. 114 | 115 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 116 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 117 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 118 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 119 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 120 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 121 | THE SOFTWARE. 122 | 123 | 124 | ## wgPersonPrefrenceCatogeryKit 125 | 126 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 127 | 128 | Permission is hereby granted, free of charge, to any person obtaining a copy 129 | of this software and associated documentation files (the "Software"), to deal 130 | in the Software without restriction, including without limitation the rights 131 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 132 | copies of the Software, and to permit persons to whom the Software is 133 | furnished to do so, subject to the following conditions: 134 | 135 | The above copyright notice and this permission notice shall be included in 136 | all copies or substantial portions of the Software. 137 | 138 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 139 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 140 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 141 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 142 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 143 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 144 | THE SOFTWARE. 145 | 146 | 147 | ## wgXibPersonCatogeryKit 148 | 149 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 150 | 151 | Permission is hereby granted, free of charge, to any person obtaining a copy 152 | of this software and associated documentation files (the "Software"), to deal 153 | in the Software without restriction, including without limitation the rights 154 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 155 | copies of the Software, and to permit persons to whom the Software is 156 | furnished to do so, subject to the following conditions: 157 | 158 | The above copyright notice and this permission notice shall be included in 159 | all copies or substantial portions of the Software. 160 | 161 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 162 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 163 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 164 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 165 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 166 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 167 | THE SOFTWARE. 168 | 169 | Generated by CocoaPods - https://cocoapods.org 170 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-WGLearnMTMediatorDemo/Pods-WGLearnMTMediatorDemo-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | MIT 18 | 19 | License 20 | MIT 21 | Title 22 | CTMediator 23 | Type 24 | PSGroupSpecifier 25 | 26 | 27 | FooterText 28 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 29 | 30 | Permission is hereby granted, free of charge, to any person obtaining a copy 31 | of this software and associated documentation files (the "Software"), to deal 32 | in the Software without restriction, including without limitation the rights 33 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 34 | copies of the Software, and to permit persons to whom the Software is 35 | furnished to do so, subject to the following conditions: 36 | 37 | The above copyright notice and this permission notice shall be included in 38 | all copies or substantial portions of the Software. 39 | 40 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 41 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 42 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 43 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 44 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 45 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 46 | THE SOFTWARE. 47 | 48 | License 49 | MIT 50 | Title 51 | WGXibPersonKit 52 | Type 53 | PSGroupSpecifier 54 | 55 | 56 | FooterText 57 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 58 | 59 | Permission is hereby granted, free of charge, to any person obtaining a copy 60 | of this software and associated documentation files (the "Software"), to deal 61 | in the Software without restriction, including without limitation the rights 62 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 63 | copies of the Software, and to permit persons to whom the Software is 64 | furnished to do so, subject to the following conditions: 65 | 66 | The above copyright notice and this permission notice shall be included in 67 | all copies or substantial portions of the Software. 68 | 69 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 70 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 71 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 72 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 73 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 74 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 75 | THE SOFTWARE. 76 | 77 | License 78 | MIT 79 | Title 80 | wgCommonKit 81 | Type 82 | PSGroupSpecifier 83 | 84 | 85 | FooterText 86 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 87 | 88 | Permission is hereby granted, free of charge, to any person obtaining a copy 89 | of this software and associated documentation files (the "Software"), to deal 90 | in the Software without restriction, including without limitation the rights 91 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 92 | copies of the Software, and to permit persons to whom the Software is 93 | furnished to do so, subject to the following conditions: 94 | 95 | The above copyright notice and this permission notice shall be included in 96 | all copies or substantial portions of the Software. 97 | 98 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 99 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 100 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 101 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 102 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 103 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 104 | THE SOFTWARE. 105 | 106 | License 107 | MIT 108 | Title 109 | wgPersonInfoCatogeryKit 110 | Type 111 | PSGroupSpecifier 112 | 113 | 114 | FooterText 115 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 116 | 117 | Permission is hereby granted, free of charge, to any person obtaining a copy 118 | of this software and associated documentation files (the "Software"), to deal 119 | in the Software without restriction, including without limitation the rights 120 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 121 | copies of the Software, and to permit persons to whom the Software is 122 | furnished to do so, subject to the following conditions: 123 | 124 | The above copyright notice and this permission notice shall be included in 125 | all copies or substantial portions of the Software. 126 | 127 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 128 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 129 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 130 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 131 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 132 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 133 | THE SOFTWARE. 134 | 135 | License 136 | MIT 137 | Title 138 | wgPersonInfoKit 139 | Type 140 | PSGroupSpecifier 141 | 142 | 143 | FooterText 144 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 145 | 146 | Permission is hereby granted, free of charge, to any person obtaining a copy 147 | of this software and associated documentation files (the "Software"), to deal 148 | in the Software without restriction, including without limitation the rights 149 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 150 | copies of the Software, and to permit persons to whom the Software is 151 | furnished to do so, subject to the following conditions: 152 | 153 | The above copyright notice and this permission notice shall be included in 154 | all copies or substantial portions of the Software. 155 | 156 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 157 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 158 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 159 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 160 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 161 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 162 | THE SOFTWARE. 163 | 164 | License 165 | MIT 166 | Title 167 | wgPersonPrefenceKit 168 | Type 169 | PSGroupSpecifier 170 | 171 | 172 | FooterText 173 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 174 | 175 | Permission is hereby granted, free of charge, to any person obtaining a copy 176 | of this software and associated documentation files (the "Software"), to deal 177 | in the Software without restriction, including without limitation the rights 178 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 179 | copies of the Software, and to permit persons to whom the Software is 180 | furnished to do so, subject to the following conditions: 181 | 182 | The above copyright notice and this permission notice shall be included in 183 | all copies or substantial portions of the Software. 184 | 185 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 186 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 187 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 188 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 189 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 190 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 191 | THE SOFTWARE. 192 | 193 | License 194 | MIT 195 | Title 196 | wgPersonPrefrenceCatogeryKit 197 | Type 198 | PSGroupSpecifier 199 | 200 | 201 | FooterText 202 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 203 | 204 | Permission is hereby granted, free of charge, to any person obtaining a copy 205 | of this software and associated documentation files (the "Software"), to deal 206 | in the Software without restriction, including without limitation the rights 207 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 208 | copies of the Software, and to permit persons to whom the Software is 209 | furnished to do so, subject to the following conditions: 210 | 211 | The above copyright notice and this permission notice shall be included in 212 | all copies or substantial portions of the Software. 213 | 214 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 215 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 216 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 217 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 218 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 219 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 220 | THE SOFTWARE. 221 | 222 | License 223 | MIT 224 | Title 225 | wgXibPersonCatogeryKit 226 | Type 227 | PSGroupSpecifier 228 | 229 | 230 | FooterText 231 | Generated by CocoaPods - https://cocoapods.org 232 | Title 233 | 234 | Type 235 | PSGroupSpecifier 236 | 237 | 238 | StringsTable 239 | Acknowledgements 240 | Title 241 | Acknowledgements 242 | 243 | 244 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-WGLearnMTMediatorDemo/Pods-WGLearnMTMediatorDemo-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_WGLearnMTMediatorDemo : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_WGLearnMTMediatorDemo 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-WGLearnMTMediatorDemo/Pods-WGLearnMTMediatorDemo-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | set -u 4 | set -o pipefail 5 | 6 | if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then 7 | # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy 8 | # frameworks to, so exit 0 (signalling the script phase was successful). 9 | exit 0 10 | fi 11 | 12 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 13 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 14 | 15 | COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" 16 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 17 | 18 | # Used as a return value for each invocation of `strip_invalid_archs` function. 19 | STRIP_BINARY_RETVAL=0 20 | 21 | # This protects against multiple targets copying the same framework dependency at the same time. The solution 22 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html 23 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") 24 | 25 | # Copies and strips a vendored framework 26 | install_framework() 27 | { 28 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 29 | local source="${BUILT_PRODUCTS_DIR}/$1" 30 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 31 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 32 | elif [ -r "$1" ]; then 33 | local source="$1" 34 | fi 35 | 36 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 37 | 38 | if [ -L "${source}" ]; then 39 | echo "Symlinked..." 40 | source="$(readlink "${source}")" 41 | fi 42 | 43 | # Use filter instead of exclude so missing patterns don't throw errors. 44 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 45 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 46 | 47 | local basename 48 | basename="$(basename -s .framework "$1")" 49 | binary="${destination}/${basename}.framework/${basename}" 50 | if ! [ -r "$binary" ]; then 51 | binary="${destination}/${basename}" 52 | fi 53 | 54 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 55 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 56 | strip_invalid_archs "$binary" 57 | fi 58 | 59 | # Resign the code if required by the build settings to avoid unstable apps 60 | code_sign_if_enabled "${destination}/$(basename "$1")" 61 | 62 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 63 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 64 | local swift_runtime_libs 65 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 66 | for lib in $swift_runtime_libs; do 67 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 68 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 69 | code_sign_if_enabled "${destination}/${lib}" 70 | done 71 | fi 72 | } 73 | 74 | # Copies and strips a vendored dSYM 75 | install_dsym() { 76 | local source="$1" 77 | if [ -r "$source" ]; then 78 | # Copy the dSYM into a the targets temp dir. 79 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" 80 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" 81 | 82 | local basename 83 | basename="$(basename -s .framework.dSYM "$source")" 84 | binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" 85 | 86 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 87 | if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then 88 | strip_invalid_archs "$binary" 89 | fi 90 | 91 | if [[ $STRIP_BINARY_RETVAL == 1 ]]; then 92 | # Move the stripped file into its final destination. 93 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" 94 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" 95 | else 96 | # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. 97 | touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" 98 | fi 99 | fi 100 | } 101 | 102 | # Signs a framework with the provided identity 103 | code_sign_if_enabled() { 104 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 105 | # Use the current code_sign_identitiy 106 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 107 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" 108 | 109 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 110 | code_sign_cmd="$code_sign_cmd &" 111 | fi 112 | echo "$code_sign_cmd" 113 | eval "$code_sign_cmd" 114 | fi 115 | } 116 | 117 | # Strip invalid architectures 118 | strip_invalid_archs() { 119 | binary="$1" 120 | # Get architectures for current target binary 121 | binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" 122 | # Intersect them with the architectures we are building for 123 | intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" 124 | # If there are no archs supported by this binary then warn the user 125 | if [[ -z "$intersected_archs" ]]; then 126 | echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." 127 | STRIP_BINARY_RETVAL=0 128 | return 129 | fi 130 | stripped="" 131 | for arch in $binary_archs; do 132 | if ! [[ "${ARCHS}" == *"$arch"* ]]; then 133 | # Strip non-valid architectures in-place 134 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 135 | stripped="$stripped $arch" 136 | fi 137 | done 138 | if [[ "$stripped" ]]; then 139 | echo "Stripped $binary of architectures:$stripped" 140 | fi 141 | STRIP_BINARY_RETVAL=1 142 | } 143 | 144 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 145 | wait 146 | fi 147 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-WGLearnMTMediatorDemo/Pods-WGLearnMTMediatorDemo-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | set -u 4 | set -o pipefail 5 | 6 | if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then 7 | # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy 8 | # resources to, so exit 0 (signalling the script phase was successful). 9 | exit 0 10 | fi 11 | 12 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 13 | 14 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 15 | > "$RESOURCES_TO_COPY" 16 | 17 | XCASSET_FILES=() 18 | 19 | # This protects against multiple targets copying the same framework dependency at the same time. The solution 20 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html 21 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") 22 | 23 | case "${TARGETED_DEVICE_FAMILY:-}" in 24 | 1,2) 25 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 26 | ;; 27 | 1) 28 | TARGET_DEVICE_ARGS="--target-device iphone" 29 | ;; 30 | 2) 31 | TARGET_DEVICE_ARGS="--target-device ipad" 32 | ;; 33 | 3) 34 | TARGET_DEVICE_ARGS="--target-device tv" 35 | ;; 36 | 4) 37 | TARGET_DEVICE_ARGS="--target-device watch" 38 | ;; 39 | *) 40 | TARGET_DEVICE_ARGS="--target-device mac" 41 | ;; 42 | esac 43 | 44 | install_resource() 45 | { 46 | if [[ "$1" = /* ]] ; then 47 | RESOURCE_PATH="$1" 48 | else 49 | RESOURCE_PATH="${PODS_ROOT}/$1" 50 | fi 51 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 52 | cat << EOM 53 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 54 | EOM 55 | exit 1 56 | fi 57 | case $RESOURCE_PATH in 58 | *.storyboard) 59 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true 60 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 61 | ;; 62 | *.xib) 63 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true 64 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 65 | ;; 66 | *.framework) 67 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true 68 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 69 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true 70 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 71 | ;; 72 | *.xcdatamodel) 73 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true 74 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 75 | ;; 76 | *.xcdatamodeld) 77 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true 78 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 79 | ;; 80 | *.xcmappingmodel) 81 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true 82 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 83 | ;; 84 | *.xcassets) 85 | ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" 86 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 87 | ;; 88 | *) 89 | echo "$RESOURCE_PATH" || true 90 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 91 | ;; 92 | esac 93 | } 94 | if [[ "$CONFIGURATION" == "Debug" ]]; then 95 | install_resource "${PODS_CONFIGURATION_BUILD_DIR}/WGXibPersonKit/WGXibPersonKit.bundle" 96 | install_resource "${PODS_CONFIGURATION_BUILD_DIR}/wgPersonInfoKit/wgPersonInfoKit.bundle" 97 | fi 98 | if [[ "$CONFIGURATION" == "Release" ]]; then 99 | install_resource "${PODS_CONFIGURATION_BUILD_DIR}/WGXibPersonKit/WGXibPersonKit.bundle" 100 | install_resource "${PODS_CONFIGURATION_BUILD_DIR}/wgPersonInfoKit/wgPersonInfoKit.bundle" 101 | fi 102 | 103 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 104 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 105 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 106 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 107 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 108 | fi 109 | rm -f "$RESOURCES_TO_COPY" 110 | 111 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] 112 | then 113 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 114 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 115 | while read line; do 116 | if [[ $line != "${PODS_ROOT}*" ]]; then 117 | XCASSET_FILES+=("$line") 118 | fi 119 | done <<<"$OTHER_XCASSETS" 120 | 121 | if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then 122 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 123 | else 124 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" 125 | fi 126 | fi 127 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-WGLearnMTMediatorDemo/Pods-WGLearnMTMediatorDemo.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CTMediator" "${PODS_ROOT}/Headers/Public/WGXibPersonKit" "${PODS_ROOT}/Headers/Public/wgCommonKit" "${PODS_ROOT}/Headers/Public/wgPersonInfoCatogeryKit" "${PODS_ROOT}/Headers/Public/wgPersonInfoKit" "${PODS_ROOT}/Headers/Public/wgPersonPrefenceKit" "${PODS_ROOT}/Headers/Public/wgPersonPrefrenceCatogeryKit" "${PODS_ROOT}/Headers/Public/wgXibPersonCatogeryKit" 3 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CTMediator" "${PODS_CONFIGURATION_BUILD_DIR}/WGXibPersonKit" "${PODS_CONFIGURATION_BUILD_DIR}/wgCommonKit" "${PODS_CONFIGURATION_BUILD_DIR}/wgPersonInfoCatogeryKit" "${PODS_CONFIGURATION_BUILD_DIR}/wgPersonInfoKit" "${PODS_CONFIGURATION_BUILD_DIR}/wgPersonPrefenceKit" "${PODS_CONFIGURATION_BUILD_DIR}/wgPersonPrefrenceCatogeryKit" "${PODS_CONFIGURATION_BUILD_DIR}/wgXibPersonCatogeryKit" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CTMediator" -isystem "${PODS_ROOT}/Headers/Public/WGXibPersonKit" -isystem "${PODS_ROOT}/Headers/Public/wgCommonKit" -isystem "${PODS_ROOT}/Headers/Public/wgPersonInfoCatogeryKit" -isystem "${PODS_ROOT}/Headers/Public/wgPersonInfoKit" -isystem "${PODS_ROOT}/Headers/Public/wgPersonPrefenceKit" -isystem "${PODS_ROOT}/Headers/Public/wgPersonPrefrenceCatogeryKit" -isystem "${PODS_ROOT}/Headers/Public/wgXibPersonCatogeryKit" 5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"CTMediator" -l"WGXibPersonKit" -l"wgCommonKit" -l"wgPersonInfoCatogeryKit" -l"wgPersonInfoKit" -l"wgPersonPrefenceKit" -l"wgPersonPrefrenceCatogeryKit" -l"wgXibPersonCatogeryKit" -framework "UIKit" 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 9 | PODS_ROOT = ${SRCROOT}/Pods 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-WGLearnMTMediatorDemo/Pods-WGLearnMTMediatorDemo.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CTMediator" "${PODS_ROOT}/Headers/Public/WGXibPersonKit" "${PODS_ROOT}/Headers/Public/wgCommonKit" "${PODS_ROOT}/Headers/Public/wgPersonInfoCatogeryKit" "${PODS_ROOT}/Headers/Public/wgPersonInfoKit" "${PODS_ROOT}/Headers/Public/wgPersonPrefenceKit" "${PODS_ROOT}/Headers/Public/wgPersonPrefrenceCatogeryKit" "${PODS_ROOT}/Headers/Public/wgXibPersonCatogeryKit" 3 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CTMediator" "${PODS_CONFIGURATION_BUILD_DIR}/WGXibPersonKit" "${PODS_CONFIGURATION_BUILD_DIR}/wgCommonKit" "${PODS_CONFIGURATION_BUILD_DIR}/wgPersonInfoCatogeryKit" "${PODS_CONFIGURATION_BUILD_DIR}/wgPersonInfoKit" "${PODS_CONFIGURATION_BUILD_DIR}/wgPersonPrefenceKit" "${PODS_CONFIGURATION_BUILD_DIR}/wgPersonPrefrenceCatogeryKit" "${PODS_CONFIGURATION_BUILD_DIR}/wgXibPersonCatogeryKit" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CTMediator" -isystem "${PODS_ROOT}/Headers/Public/WGXibPersonKit" -isystem "${PODS_ROOT}/Headers/Public/wgCommonKit" -isystem "${PODS_ROOT}/Headers/Public/wgPersonInfoCatogeryKit" -isystem "${PODS_ROOT}/Headers/Public/wgPersonInfoKit" -isystem "${PODS_ROOT}/Headers/Public/wgPersonPrefenceKit" -isystem "${PODS_ROOT}/Headers/Public/wgPersonPrefrenceCatogeryKit" -isystem "${PODS_ROOT}/Headers/Public/wgXibPersonCatogeryKit" 5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"CTMediator" -l"WGXibPersonKit" -l"wgCommonKit" -l"wgPersonInfoCatogeryKit" -l"wgPersonInfoKit" -l"wgPersonPrefenceKit" -l"wgPersonPrefrenceCatogeryKit" -l"wgXibPersonCatogeryKit" -framework "UIKit" 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 9 | PODS_ROOT = ${SRCROOT}/Pods 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WGXibPersonKit/ResourceBundle-WGXibPersonKit-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleIdentifier 8 | ${PRODUCT_BUNDLE_IDENTIFIER} 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundleName 12 | ${PRODUCT_NAME} 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 0.1.3 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WGXibPersonKit/WGXibPersonKit-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_WGXibPersonKit : NSObject 3 | @end 4 | @implementation PodsDummy_WGXibPersonKit 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WGXibPersonKit/WGXibPersonKit-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WGXibPersonKit/WGXibPersonKit.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/WGXibPersonKit 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/WGXibPersonKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CTMediator" "${PODS_ROOT}/Headers/Public/WGXibPersonKit" "${PODS_ROOT}/Headers/Public/wgCommonKit" "${PODS_ROOT}/Headers/Public/wgXibPersonCatogeryKit" 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CTMediator" "${PODS_CONFIGURATION_BUILD_DIR}/wgCommonKit" "${PODS_CONFIGURATION_BUILD_DIR}/wgXibPersonCatogeryKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/WGXibPersonKit 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgCommonKit/wgCommonKit-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_wgCommonKit : NSObject 3 | @end 4 | @implementation PodsDummy_wgCommonKit 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgCommonKit/wgCommonKit-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgCommonKit/wgCommonKit.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/wgCommonKit 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/wgCommonKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/wgCommonKit" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/wgCommonKit 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgPersonInfoCatogeryKit/wgPersonInfoCatogeryKit-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_wgPersonInfoCatogeryKit : NSObject 3 | @end 4 | @implementation PodsDummy_wgPersonInfoCatogeryKit 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgPersonInfoCatogeryKit/wgPersonInfoCatogeryKit-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgPersonInfoCatogeryKit/wgPersonInfoCatogeryKit.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/wgPersonInfoCatogeryKit 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/wgPersonInfoCatogeryKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CTMediator" "${PODS_ROOT}/Headers/Public/wgPersonInfoCatogeryKit" 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CTMediator" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/wgPersonInfoCatogeryKit 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgPersonInfoKit/ResourceBundle-wgPersonInfoKit-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleIdentifier 8 | ${PRODUCT_BUNDLE_IDENTIFIER} 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundleName 12 | ${PRODUCT_NAME} 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 2.0.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgPersonInfoKit/wgPersonInfoKit-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_wgPersonInfoKit : NSObject 3 | @end 4 | @implementation PodsDummy_wgPersonInfoKit 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgPersonInfoKit/wgPersonInfoKit-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgPersonInfoKit/wgPersonInfoKit.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/wgPersonInfoKit 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/wgPersonInfoKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CTMediator" "${PODS_ROOT}/Headers/Public/wgCommonKit" "${PODS_ROOT}/Headers/Public/wgPersonInfoKit" "${PODS_ROOT}/Headers/Public/wgPersonPrefrenceCatogeryKit" 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CTMediator" "${PODS_CONFIGURATION_BUILD_DIR}/wgCommonKit" "${PODS_CONFIGURATION_BUILD_DIR}/wgPersonPrefrenceCatogeryKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/wgPersonInfoKit 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgPersonPrefenceKit/wgPersonPrefenceKit-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_wgPersonPrefenceKit : NSObject 3 | @end 4 | @implementation PodsDummy_wgPersonPrefenceKit 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgPersonPrefenceKit/wgPersonPrefenceKit-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgPersonPrefenceKit/wgPersonPrefenceKit.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/wgPersonPrefenceKit 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/wgPersonPrefenceKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/wgPersonPrefenceKit" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/wgPersonPrefenceKit 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgPersonPrefrenceCatogeryKit/wgPersonPrefrenceCatogeryKit-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_wgPersonPrefrenceCatogeryKit : NSObject 3 | @end 4 | @implementation PodsDummy_wgPersonPrefrenceCatogeryKit 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgPersonPrefrenceCatogeryKit/wgPersonPrefrenceCatogeryKit-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgPersonPrefrenceCatogeryKit/wgPersonPrefrenceCatogeryKit.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/wgPersonPrefrenceCatogeryKit 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/wgPersonPrefrenceCatogeryKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CTMediator" "${PODS_ROOT}/Headers/Public/wgPersonPrefrenceCatogeryKit" 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CTMediator" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/wgPersonPrefrenceCatogeryKit 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgXibPersonCatogeryKit/wgXibPersonCatogeryKit-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_wgXibPersonCatogeryKit : NSObject 3 | @end 4 | @implementation PodsDummy_wgXibPersonCatogeryKit 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgXibPersonCatogeryKit/wgXibPersonCatogeryKit-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/wgXibPersonCatogeryKit/wgXibPersonCatogeryKit.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/wgXibPersonCatogeryKit 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/wgXibPersonCatogeryKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CTMediator" "${PODS_ROOT}/Headers/Public/wgXibPersonCatogeryKit" 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CTMediator" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/wgXibPersonCatogeryKit 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/WGXibPersonKit/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/WGXibPersonKit/README.md: -------------------------------------------------------------------------------- 1 | # WGXibPersonKit 2 | 3 | [![CI Status](https://img.shields.io/travis/wanggang1128/WGXibPersonKit.svg?style=flat)](https://travis-ci.org/wanggang1128/WGXibPersonKit) 4 | [![Version](https://img.shields.io/cocoapods/v/WGXibPersonKit.svg?style=flat)](https://cocoapods.org/pods/WGXibPersonKit) 5 | [![License](https://img.shields.io/cocoapods/l/WGXibPersonKit.svg?style=flat)](https://cocoapods.org/pods/WGXibPersonKit) 6 | [![Platform](https://img.shields.io/cocoapods/p/WGXibPersonKit.svg?style=flat)](https://cocoapods.org/pods/WGXibPersonKit) 7 | 8 | ## Example 9 | 10 | To run the example project, clone the repo, and run `pod install` from the Example directory first. 11 | 12 | ## Requirements 13 | 14 | ## Installation 15 | 16 | WGXibPersonKit is available through [CocoaPods](https://cocoapods.org). To install 17 | it, simply add the following line to your Podfile: 18 | 19 | ```ruby 20 | pod 'WGXibPersonKit' 21 | ``` 22 | 23 | ## Author 24 | 25 | wanggang1128, 978159546@qq.com 26 | 27 | ## License 28 | 29 | WGXibPersonKit is available under the MIT license. See the LICENSE file for more info. 30 | -------------------------------------------------------------------------------- /Pods/WGXibPersonKit/WGXibPersonKit/Assets/Group@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wgModularization/WGLearnMTMediatorDemo/480a24ff036390b572738d31179597d96f6562b5/Pods/WGXibPersonKit/WGXibPersonKit/Assets/Group@1x.png -------------------------------------------------------------------------------- /Pods/WGXibPersonKit/WGXibPersonKit/Assets/Group@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wgModularization/WGLearnMTMediatorDemo/480a24ff036390b572738d31179597d96f6562b5/Pods/WGXibPersonKit/WGXibPersonKit/Assets/Group@2x.png -------------------------------------------------------------------------------- /Pods/WGXibPersonKit/WGXibPersonKit/Assets/Group@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wgModularization/WGLearnMTMediatorDemo/480a24ff036390b572738d31179597d96f6562b5/Pods/WGXibPersonKit/WGXibPersonKit/Assets/Group@3x.png -------------------------------------------------------------------------------- /Pods/WGXibPersonKit/WGXibPersonKit/Assets/WGXibPersonViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Pods/WGXibPersonKit/WGXibPersonKit/Classes/ReplaceMe.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wgModularization/WGLearnMTMediatorDemo/480a24ff036390b572738d31179597d96f6562b5/Pods/WGXibPersonKit/WGXibPersonKit/Classes/ReplaceMe.m -------------------------------------------------------------------------------- /Pods/WGXibPersonKit/WGXibPersonKit/Classes/TAXibPerxon/NSBundle+wgSubBundle.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSBundle+wgSubBundle.h 3 | // CTMediator 4 | // 5 | // Created by wanggang on 2018/9/12. 6 | // 7 | 8 | #import 9 | 10 | @interface NSBundle (wgSubBundle) 11 | 12 | + (instancetype)wg_subBundleWithBundleName:(NSString *)bundleName targetClass:(Class)targetClass; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Pods/WGXibPersonKit/WGXibPersonKit/Classes/TAXibPerxon/NSBundle+wgSubBundle.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSBundle+wgSubBundle.m 3 | // CTMediator 4 | // 5 | // Created by wanggang on 2018/9/12. 6 | // 7 | 8 | #import "NSBundle+wgSubBundle.h" 9 | 10 | @implementation NSBundle (wgSubBundle) 11 | 12 | + (instancetype)wg_subBundleWithBundleName:(NSString *)bundleName targetClass:(Class)targetClass{ 13 | //并没有拿到子bundle 14 | NSBundle *bundle = [NSBundle bundleForClass:targetClass]; 15 | //在这个路径下找到子bundle的路径 16 | NSString *path = [bundle pathForResource:bundleName ofType:@"bundle"]; 17 | //根据路径拿到子bundle 18 | return path?[NSBundle bundleWithPath:path]:[NSBundle mainBundle]; 19 | 20 | /* 21 | 这种方式也可以 22 | NSBundle *bundle = [NSBundle bundleForClass:targetClass]; 23 | NSURL *url = [bundle URLForResource:bundleName withExtension:@"bundle"]; 24 | return path?[NSBundle bundleWithURL:url]:[NSBundle mainBundle]; 25 | */ 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Pods/WGXibPersonKit/WGXibPersonKit/Classes/TAXibPerxon/Target_xibPersonViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // Target_xibPersonViewController.h 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/9/11. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface Target_xibPersonViewController : NSObject 13 | 14 | - (UIViewController *)Action_xibPersonViewController:(NSDictionary *)param; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/WGXibPersonKit/WGXibPersonKit/Classes/TAXibPerxon/Target_xibPersonViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // Target_xibPersonViewController.m 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/9/11. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import "Target_xibPersonViewController.h" 10 | #import "WGXibPersonViewController.h" 11 | 12 | @implementation Target_xibPersonViewController 13 | 14 | - (UIViewController *)Action_xibPersonViewController:(NSDictionary *)param{ 15 | 16 | WGXibPersonViewController *con = [[WGXibPersonViewController alloc] init]; 17 | con.imgName = param[@"imgName"]; 18 | 19 | return con; 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Pods/WGXibPersonKit/WGXibPersonKit/Classes/TAXibPerxon/WGXibPersonViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // WGXibPersonViewController.h 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/9/11. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface WGXibPersonViewController : UIViewController 12 | 13 | @property (nonatomic, strong) NSString *imgName; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/WGXibPersonKit/WGXibPersonKit/Classes/TAXibPerxon/WGXibPersonViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // WGXibPersonViewController.m 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/9/11. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import "WGXibPersonViewController.h" 10 | #import 11 | #import "NSBundle+wgSubBundle.h" 12 | 13 | @interface WGXibPersonViewController () 14 | 15 | @property (weak, nonatomic) IBOutlet UIImageView *imgView; 16 | 17 | @end 18 | 19 | @implementation WGXibPersonViewController 20 | 21 | -(instancetype)init{ 22 | 23 | self = [super initWithNibName:@"WGXibPersonViewController" bundle:[NSBundle wg_subBundleWithBundleName:@"WGXibPersonKit" targetClass:[self class]]]; 24 | 25 | if (self){ 26 | } 27 | return self; 28 | } 29 | 30 | - (void)viewDidLoad { 31 | [super viewDidLoad]; 32 | 33 | self.imgView.image = [UIImage wg_imgWithName:@"Group" bundle:@"WGXibPersonKit" targetClass:[self class]]; 34 | self.imgView.backgroundColor = [UIColor redColor]; 35 | 36 | 37 | } 38 | 39 | 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /Pods/wgCommonKit/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/wgCommonKit/README.md: -------------------------------------------------------------------------------- 1 | # wgCommonKit 2 | 3 | [![CI Status](https://img.shields.io/travis/wanggang1128/wgCommonKit.svg?style=flat)](https://travis-ci.org/wanggang1128/wgCommonKit) 4 | [![Version](https://img.shields.io/cocoapods/v/wgCommonKit.svg?style=flat)](https://cocoapods.org/pods/wgCommonKit) 5 | [![License](https://img.shields.io/cocoapods/l/wgCommonKit.svg?style=flat)](https://cocoapods.org/pods/wgCommonKit) 6 | [![Platform](https://img.shields.io/cocoapods/p/wgCommonKit.svg?style=flat)](https://cocoapods.org/pods/wgCommonKit) 7 | 8 | ## Example 9 | 10 | To run the example project, clone the repo, and run `pod install` from the Example directory first. 11 | 12 | ## Requirements 13 | 14 | ## Installation 15 | 16 | wgCommonKit is available through [CocoaPods](https://cocoapods.org). To install 17 | it, simply add the following line to your Podfile: 18 | 19 | ```ruby 20 | pod 'wgCommonKit' 21 | ``` 22 | 23 | ## Author 24 | 25 | wanggang1128, 978159546@qq.com 26 | 27 | ## License 28 | 29 | wgCommonKit is available under the MIT license. See the LICENSE file for more info. 30 | -------------------------------------------------------------------------------- /Pods/wgCommonKit/wgCommonKit/Classes/ReplaceMe.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wgModularization/WGLearnMTMediatorDemo/480a24ff036390b572738d31179597d96f6562b5/Pods/wgCommonKit/wgCommonKit/Classes/ReplaceMe.m -------------------------------------------------------------------------------- /Pods/wgCommonKit/wgCommonKit/Classes/wgCommon/UIImage+wgBundle.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+wgBundle.h 3 | // Pods-wgCommonKit_Example 4 | // 5 | // Created by wanggang on 2018/5/21. 6 | // 7 | 8 | #import 9 | 10 | @interface UIImage (wgBundle) 11 | 12 | + (instancetype)wg_imgWithName:(NSString *)name bundle:(NSString *)bundleName targetClass:(Class)targetClass; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Pods/wgCommonKit/wgCommonKit/Classes/wgCommon/UIImage+wgBundle.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+wgBundle.m 3 | // Pods-wgCommonKit_Example 4 | // 5 | // Created by wanggang on 2018/5/21. 6 | // 7 | 8 | #import "UIImage+wgBundle.h" 9 | 10 | @implementation UIImage (wgBundle) 11 | 12 | + (instancetype)wg_imgWithName:(NSString *)name bundle:(NSString *)bundleName targetClass:(Class)targetClass{ 13 | NSInteger scale = [[UIScreen mainScreen] scale]; 14 | NSBundle *curB = [NSBundle bundleForClass:targetClass]; 15 | NSString *imgName = [NSString stringWithFormat:@"%@@%zdx.png", name,scale]; 16 | NSString *dir = [NSString stringWithFormat:@"%@.bundle",bundleName]; 17 | NSString *path = [curB pathForResource:imgName ofType:nil inDirectory:dir]; 18 | return path?[UIImage imageWithContentsOfFile:path]:nil; 19 | } 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Pods/wgPersonInfoCatogeryKit/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/wgPersonInfoCatogeryKit/README.md: -------------------------------------------------------------------------------- 1 | # wgPersonInfoCatogeryKit 2 | 3 | [![CI Status](https://img.shields.io/travis/wanggang1128/wgPersonInfoCatogeryKit.svg?style=flat)](https://travis-ci.org/wanggang1128/wgPersonInfoCatogeryKit) 4 | [![Version](https://img.shields.io/cocoapods/v/wgPersonInfoCatogeryKit.svg?style=flat)](https://cocoapods.org/pods/wgPersonInfoCatogeryKit) 5 | [![License](https://img.shields.io/cocoapods/l/wgPersonInfoCatogeryKit.svg?style=flat)](https://cocoapods.org/pods/wgPersonInfoCatogeryKit) 6 | [![Platform](https://img.shields.io/cocoapods/p/wgPersonInfoCatogeryKit.svg?style=flat)](https://cocoapods.org/pods/wgPersonInfoCatogeryKit) 7 | 8 | ## Example 9 | 10 | To run the example project, clone the repo, and run `pod install` from the Example directory first. 11 | 12 | ## Requirements 13 | 14 | ## Installation 15 | 16 | wgPersonInfoCatogeryKit is available through [CocoaPods](https://cocoapods.org). To install 17 | it, simply add the following line to your Podfile: 18 | 19 | ```ruby 20 | pod 'wgPersonInfoCatogeryKit' 21 | ``` 22 | 23 | ## Author 24 | 25 | wanggang1128, 978159546@qq.com 26 | 27 | ## License 28 | 29 | wgPersonInfoCatogeryKit is available under the MIT license. See the LICENSE file for more info. 30 | -------------------------------------------------------------------------------- /Pods/wgPersonInfoCatogeryKit/wgPersonInfoCatogeryKit/Classes/ReplaceMe.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wgModularization/WGLearnMTMediatorDemo/480a24ff036390b572738d31179597d96f6562b5/Pods/wgPersonInfoCatogeryKit/wgPersonInfoCatogeryKit/Classes/ReplaceMe.m -------------------------------------------------------------------------------- /Pods/wgPersonInfoCatogeryKit/wgPersonInfoCatogeryKit/Classes/wgPersonInfoCatogery/CTMediator+TAPersonInfo.h: -------------------------------------------------------------------------------- 1 | // 2 | // CTMediator+TAPersonInfo.h 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/4/27. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface CTMediator (TAPersonInfo) 12 | 13 | - (UIViewController *)personInfoWithName:(NSString *)name age:(NSInteger)age; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/wgPersonInfoCatogeryKit/wgPersonInfoCatogeryKit/Classes/wgPersonInfoCatogery/CTMediator+TAPersonInfo.m: -------------------------------------------------------------------------------- 1 | // 2 | // CTMediator+TAPersonInfo.m 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/4/27. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import "CTMediator+TAPersonInfo.h" 10 | 11 | @implementation CTMediator (TAPersonInfo) 12 | 13 | - (UIViewController *)personInfoWithName:(NSString *)name age:(NSInteger)age{ 14 | 15 | NSMutableDictionary *dic = [[NSMutableDictionary alloc] init]; 16 | [dic setValue:name forKey:@"name"]; 17 | [dic setValue:@(age) forKey:@"age"]; 18 | 19 | return [self performTarget:@"WGPersonInfoViewController" action:@"PersonInfoViewController" params:dic shouldCacheTarget:NO]; 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Pods/wgPersonInfoKit/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/wgPersonInfoKit/README.md: -------------------------------------------------------------------------------- 1 | # wgPersonInfoKit 2 | 3 | [![CI Status](https://img.shields.io/travis/wanggang1128/wgPersonInfoKit.svg?style=flat)](https://travis-ci.org/wanggang1128/wgPersonInfoKit) 4 | [![Version](https://img.shields.io/cocoapods/v/wgPersonInfoKit.svg?style=flat)](https://cocoapods.org/pods/wgPersonInfoKit) 5 | [![License](https://img.shields.io/cocoapods/l/wgPersonInfoKit.svg?style=flat)](https://cocoapods.org/pods/wgPersonInfoKit) 6 | [![Platform](https://img.shields.io/cocoapods/p/wgPersonInfoKit.svg?style=flat)](https://cocoapods.org/pods/wgPersonInfoKit) 7 | 8 | ## Example 9 | 10 | To run the example project, clone the repo, and run `pod install` from the Example directory first. 11 | 12 | ## Requirements 13 | 14 | ## Installation 15 | 16 | wgPersonInfoKit is available through [CocoaPods](https://cocoapods.org). To install 17 | it, simply add the following line to your Podfile: 18 | 19 | ```ruby 20 | pod 'wgPersonInfoKit' 21 | ``` 22 | 23 | ## Author 24 | 25 | wanggang1128, 978159546@qq.com 26 | 27 | ## License 28 | 29 | wgPersonInfoKit is available under the MIT license. See the LICENSE file for more info. 30 | -------------------------------------------------------------------------------- /Pods/wgPersonInfoKit/wgPersonInfoKit/Assets/Group@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wgModularization/WGLearnMTMediatorDemo/480a24ff036390b572738d31179597d96f6562b5/Pods/wgPersonInfoKit/wgPersonInfoKit/Assets/Group@1x.png -------------------------------------------------------------------------------- /Pods/wgPersonInfoKit/wgPersonInfoKit/Assets/Group@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wgModularization/WGLearnMTMediatorDemo/480a24ff036390b572738d31179597d96f6562b5/Pods/wgPersonInfoKit/wgPersonInfoKit/Assets/Group@2x.png -------------------------------------------------------------------------------- /Pods/wgPersonInfoKit/wgPersonInfoKit/Assets/Group@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wgModularization/WGLearnMTMediatorDemo/480a24ff036390b572738d31179597d96f6562b5/Pods/wgPersonInfoKit/wgPersonInfoKit/Assets/Group@3x.png -------------------------------------------------------------------------------- /Pods/wgPersonInfoKit/wgPersonInfoKit/Classes/ReplaceMe.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wgModularization/WGLearnMTMediatorDemo/480a24ff036390b572738d31179597d96f6562b5/Pods/wgPersonInfoKit/wgPersonInfoKit/Classes/ReplaceMe.m -------------------------------------------------------------------------------- /Pods/wgPersonInfoKit/wgPersonInfoKit/Classes/TAPersonInfo/Target_WGPersonInfoViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // Target_WGPersonInfoViewController.h 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/4/27. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface Target_WGPersonInfoViewController : NSObject 13 | 14 | - (UIViewController *)Action_PersonInfoViewController:(NSDictionary *)param; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/wgPersonInfoKit/wgPersonInfoKit/Classes/TAPersonInfo/Target_WGPersonInfoViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // Target_WGPersonInfoViewController.m 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/4/27. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import "Target_WGPersonInfoViewController.h" 10 | #import "WGPersonInfoViewController.h" 11 | 12 | @implementation Target_WGPersonInfoViewController 13 | 14 | - (UIViewController *)Action_PersonInfoViewController:(NSDictionary *)param{ 15 | WGPersonInfoViewController *perInfo = [[WGPersonInfoViewController alloc] init]; 16 | perInfo.name = [param valueForKey:@"name"]; 17 | perInfo.age = ((NSNumber *)[param valueForKey:@"age"]).integerValue; 18 | return perInfo; 19 | } 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Pods/wgPersonInfoKit/wgPersonInfoKit/Classes/TAPersonInfo/WGPersonInfoViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // WGPersonInfoViewController.h 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/4/27. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface WGPersonInfoViewController : UIViewController 12 | 13 | @property (nonatomic, copy) NSString *name; 14 | @property (nonatomic, assign) NSInteger age; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/wgPersonInfoKit/wgPersonInfoKit/Classes/TAPersonInfo/WGPersonInfoViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // WGPersonInfoViewController.m 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/4/27. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #define WGWidth [UIScreen mainScreen].bounds.size.width 10 | 11 | #import "WGPersonInfoViewController.h" 12 | #import 13 | #import 14 | 15 | @interface WGPersonInfoViewController () 16 | 17 | @property (nonatomic, strong) UIButton *likeBtn; 18 | @property (nonatomic, strong) UILabel *displayLab; 19 | @property (nonatomic, strong) UIImageView *imgView; 20 | 21 | @end 22 | 23 | @implementation WGPersonInfoViewController 24 | 25 | - (void)viewDidLoad { 26 | [super viewDidLoad]; 27 | 28 | self.view.backgroundColor = [UIColor whiteColor]; 29 | [self.view addSubview:self.displayLab]; 30 | [self.view addSubview:self.likeBtn]; 31 | [self.view addSubview:self.imgView]; 32 | } 33 | 34 | -(void)viewWillLayoutSubviews{ 35 | [super viewWillLayoutSubviews]; 36 | 37 | self.displayLab.text = [NSString stringWithFormat:@"%@今年%ld岁,是个高富帅",self.name,self.age]; 38 | } 39 | 40 | - (void)btnClick{ 41 | UIViewController *con = [[CTMediator sharedInstance] personPreferenceWithRemind:@"希望您能喜欢我" resultBlock:^(BOOL isLike) { 42 | if (isLike) { 43 | [_likeBtn setTitle:@"对方喜欢你" forState:UIControlStateNormal]; 44 | _likeBtn.backgroundColor = [UIColor cyanColor]; 45 | }else{ 46 | [_likeBtn setTitle:@"对方讨厌你" forState:UIControlStateNormal]; 47 | _likeBtn.backgroundColor = [UIColor redColor]; 48 | } 49 | }]; 50 | [self.navigationController pushViewController:con animated:YES]; 51 | } 52 | 53 | -(UILabel *)displayLab{ 54 | if (!_displayLab) { 55 | _displayLab = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, WGWidth, 100)]; 56 | _displayLab.textColor = [UIColor blackColor]; 57 | _displayLab.textAlignment = NSTextAlignmentCenter; 58 | _displayLab.backgroundColor = [UIColor yellowColor]; 59 | } 60 | return _displayLab; 61 | } 62 | 63 | -(UIButton *)likeBtn{ 64 | if (!_likeBtn) { 65 | _likeBtn = [[UIButton alloc] initWithFrame:CGRectMake((WGWidth-100)*0.5, 220, 100, 40)]; 66 | [_likeBtn setTitle:@"开始打分" forState:UIControlStateNormal]; 67 | [_likeBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 68 | [_likeBtn setBackgroundColor:[UIColor yellowColor]]; 69 | [_likeBtn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside]; 70 | } 71 | return _likeBtn; 72 | } 73 | 74 | -(UIImageView *)imgView{ 75 | if (!_imgView) { 76 | _imgView = [[UIImageView alloc] initWithFrame:CGRectMake((WGWidth-150)*0.5, 300, 150, 150)]; 77 | //[UIImage imageNamed:@“图片名"]方式加载本地图片,这种方式默认是从mainBundle中去加载图片 78 | // _imgView.image = [UIImage imageNamed:@"Group@%2x.png"]; 79 | _imgView.image = [UIImage wg_imgWithName:@"Group" bundle:@"wgPersonInfoKit" targetClass:[self class]]; 80 | _imgView.backgroundColor = [UIColor cyanColor]; 81 | } 82 | return _imgView; 83 | } 84 | 85 | @end 86 | -------------------------------------------------------------------------------- /Pods/wgPersonPrefenceKit/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/wgPersonPrefenceKit/README.md: -------------------------------------------------------------------------------- 1 | # wgPersonPrefenceKit 2 | 3 | [![CI Status](https://img.shields.io/travis/wanggang1128/wgPersonPrefenceKit.svg?style=flat)](https://travis-ci.org/wanggang1128/wgPersonPrefenceKit) 4 | [![Version](https://img.shields.io/cocoapods/v/wgPersonPrefenceKit.svg?style=flat)](https://cocoapods.org/pods/wgPersonPrefenceKit) 5 | [![License](https://img.shields.io/cocoapods/l/wgPersonPrefenceKit.svg?style=flat)](https://cocoapods.org/pods/wgPersonPrefenceKit) 6 | [![Platform](https://img.shields.io/cocoapods/p/wgPersonPrefenceKit.svg?style=flat)](https://cocoapods.org/pods/wgPersonPrefenceKit) 7 | 8 | ## Example 9 | 10 | To run the example project, clone the repo, and run `pod install` from the Example directory first. 11 | 12 | ## Requirements 13 | 14 | ## Installation 15 | 16 | wgPersonPrefenceKit is available through [CocoaPods](https://cocoapods.org). To install 17 | it, simply add the following line to your Podfile: 18 | 19 | ```ruby 20 | pod 'wgPersonPrefenceKit' 21 | ``` 22 | 23 | ## Author 24 | 25 | wanggang1128, 978159546@qq.com 26 | 27 | ## License 28 | 29 | wgPersonPrefenceKit is available under the MIT license. See the LICENSE file for more info. 30 | -------------------------------------------------------------------------------- /Pods/wgPersonPrefenceKit/wgPersonPrefenceKit/Classes/ReplaceMe.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wgModularization/WGLearnMTMediatorDemo/480a24ff036390b572738d31179597d96f6562b5/Pods/wgPersonPrefenceKit/wgPersonPrefenceKit/Classes/ReplaceMe.m -------------------------------------------------------------------------------- /Pods/wgPersonPrefenceKit/wgPersonPrefenceKit/Classes/TAPersonPrefrence/Target_WGPersonPreferenceViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // Target_WGPersonPreferenceViewController.h 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/5/9. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface Target_WGPersonPreferenceViewController : NSObject 13 | 14 | - (UIViewController *)Action_WGPersonPreferenceViewController:(NSDictionary *)param; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/wgPersonPrefenceKit/wgPersonPrefenceKit/Classes/TAPersonPrefrence/Target_WGPersonPreferenceViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // Target_WGPersonPreferenceViewController.m 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/5/9. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import "Target_WGPersonPreferenceViewController.h" 10 | #import "WGPersonPreferenceViewController.h" 11 | 12 | @implementation Target_WGPersonPreferenceViewController 13 | 14 | - (UIViewController *)Action_WGPersonPreferenceViewController:(NSDictionary *)param{ 15 | WGPersonPreferenceViewController *per = [[WGPersonPreferenceViewController alloc] init]; 16 | per.remind = [param valueForKey:@"remind"]; 17 | per.myBlock = [param valueForKey:@"myBlock"]; 18 | return per; 19 | } 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Pods/wgPersonPrefenceKit/wgPersonPrefenceKit/Classes/TAPersonPrefrence/WGPersonPreferenceViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // WGPersonPreferenceViewController.h 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/5/9. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef void(^ResultBlock)(BOOL isLike); 12 | 13 | @interface WGPersonPreferenceViewController : UIViewController 14 | 15 | @property (nonatomic, copy) NSString *remind; 16 | @property (nonatomic, copy) ResultBlock myBlock; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Pods/wgPersonPrefenceKit/wgPersonPrefenceKit/Classes/TAPersonPrefrence/WGPersonPreferenceViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // WGPersonPreferenceViewController.m 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/5/9. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #define WGWidth [UIScreen mainScreen].bounds.size.width 10 | 11 | #import "WGPersonPreferenceViewController.h" 12 | 13 | @interface WGPersonPreferenceViewController () 14 | 15 | @property (nonatomic, strong) UILabel *remindLab; 16 | @property (nonatomic, strong) UIButton *likeBtn; 17 | @property (nonatomic, strong) UIButton *unLikeBtn; 18 | 19 | @end 20 | 21 | @implementation WGPersonPreferenceViewController 22 | 23 | - (void)viewDidLoad { 24 | [super viewDidLoad]; 25 | 26 | self.view.backgroundColor = [UIColor whiteColor]; 27 | [self.view addSubview:self.remindLab]; 28 | [self.view addSubview:self.likeBtn]; 29 | [self.view addSubview:self.unLikeBtn]; 30 | } 31 | 32 | -(void)viewWillLayoutSubviews{ 33 | [super viewWillLayoutSubviews]; 34 | 35 | self.remindLab.text = [NSString stringWithFormat:@"%@,谢谢!!!",self.remind]; 36 | } 37 | 38 | - (void)btnClicked:(UIButton *)btn{ 39 | switch (btn.tag) { 40 | case 1: 41 | self.myBlock(YES); 42 | [self.navigationController popViewControllerAnimated:YES]; 43 | break; 44 | 45 | default: 46 | self.myBlock(NO); 47 | [self.navigationController popViewControllerAnimated:YES]; 48 | break; 49 | } 50 | } 51 | 52 | -(UILabel *)remindLab{ 53 | if (!_remindLab) { 54 | _remindLab = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, WGWidth, 100)]; 55 | _remindLab.textColor = [UIColor blackColor]; 56 | _remindLab.textAlignment = NSTextAlignmentCenter; 57 | _remindLab.backgroundColor = [UIColor brownColor]; 58 | } 59 | return _remindLab; 60 | } 61 | 62 | -(UIButton *)likeBtn{ 63 | if (!_likeBtn) { 64 | _likeBtn = [[UIButton alloc] initWithFrame:CGRectMake((WGWidth-100)*0.5, 220, 100, 40)]; 65 | [_likeBtn setTitle:@"喜欢" forState:UIControlStateNormal]; 66 | [_likeBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 67 | [_likeBtn setBackgroundColor:[UIColor cyanColor]]; 68 | _likeBtn.tag = 1; 69 | [_likeBtn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside]; 70 | } 71 | return _likeBtn; 72 | } 73 | 74 | -(UIButton *)unLikeBtn{ 75 | if (!_unLikeBtn) { 76 | _unLikeBtn = [[UIButton alloc] initWithFrame:CGRectMake((WGWidth-100)*0.5, 300, 100, 40)]; 77 | [_unLikeBtn setTitle:@"烦" forState:UIControlStateNormal]; 78 | [_unLikeBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 79 | [_unLikeBtn setBackgroundColor:[UIColor redColor]]; 80 | _unLikeBtn.tag = 2; 81 | [_unLikeBtn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside]; 82 | } 83 | return _unLikeBtn; 84 | } 85 | 86 | @end 87 | -------------------------------------------------------------------------------- /Pods/wgPersonPrefrenceCatogeryKit/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/wgPersonPrefrenceCatogeryKit/README.md: -------------------------------------------------------------------------------- 1 | # wgPersonPrefrenceCatogeryKit 2 | 3 | [![CI Status](https://img.shields.io/travis/wanggang1128/wgPersonPrefrenceCatogeryKit.svg?style=flat)](https://travis-ci.org/wanggang1128/wgPersonPrefrenceCatogeryKit) 4 | [![Version](https://img.shields.io/cocoapods/v/wgPersonPrefrenceCatogeryKit.svg?style=flat)](https://cocoapods.org/pods/wgPersonPrefrenceCatogeryKit) 5 | [![License](https://img.shields.io/cocoapods/l/wgPersonPrefrenceCatogeryKit.svg?style=flat)](https://cocoapods.org/pods/wgPersonPrefrenceCatogeryKit) 6 | [![Platform](https://img.shields.io/cocoapods/p/wgPersonPrefrenceCatogeryKit.svg?style=flat)](https://cocoapods.org/pods/wgPersonPrefrenceCatogeryKit) 7 | 8 | ## Example 9 | 10 | To run the example project, clone the repo, and run `pod install` from the Example directory first. 11 | 12 | ## Requirements 13 | 14 | ## Installation 15 | 16 | wgPersonPrefrenceCatogeryKit is available through [CocoaPods](https://cocoapods.org). To install 17 | it, simply add the following line to your Podfile: 18 | 19 | ```ruby 20 | pod 'wgPersonPrefrenceCatogeryKit' 21 | ``` 22 | 23 | ## Author 24 | 25 | wanggang1128, 978159546@qq.com 26 | 27 | ## License 28 | 29 | wgPersonPrefrenceCatogeryKit is available under the MIT license. See the LICENSE file for more info. 30 | -------------------------------------------------------------------------------- /Pods/wgPersonPrefrenceCatogeryKit/wgPersonPrefrenceCatogeryKit/Classes/ReplaceMe.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wgModularization/WGLearnMTMediatorDemo/480a24ff036390b572738d31179597d96f6562b5/Pods/wgPersonPrefrenceCatogeryKit/wgPersonPrefrenceCatogeryKit/Classes/ReplaceMe.m -------------------------------------------------------------------------------- /Pods/wgPersonPrefrenceCatogeryKit/wgPersonPrefrenceCatogeryKit/Classes/wgPersonPrefrenceCatogery/CTMediator+TAPersonPreference.h: -------------------------------------------------------------------------------- 1 | // 2 | // CTMediator+TAPersonPreference.h 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/4/27. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef void(^ResultBlock)(BOOL isLike); 12 | 13 | @interface CTMediator (TAPersonPreference) 14 | 15 | - (UIViewController *)personPreferenceWithRemind:(NSString *)remind resultBlock:(ResultBlock)block; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/wgPersonPrefrenceCatogeryKit/wgPersonPrefrenceCatogeryKit/Classes/wgPersonPrefrenceCatogery/CTMediator+TAPersonPreference.m: -------------------------------------------------------------------------------- 1 | // 2 | // CTMediator+TAPersonPreference.m 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/4/27. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import "CTMediator+TAPersonPreference.h" 10 | 11 | @implementation CTMediator (TAPersonPreference) 12 | 13 | - (UIViewController *)personPreferenceWithRemind:(NSString *)remind resultBlock:(ResultBlock)block{ 14 | 15 | NSMutableDictionary *dic = [[NSMutableDictionary alloc] init]; 16 | [dic setValue:remind forKey:@"remind"]; 17 | [dic setValue:block forKey:@"myBlock"]; 18 | 19 | return [self performTarget:@"WGPersonPreferenceViewController" action:@"WGPersonPreferenceViewController" params:dic shouldCacheTarget:NO]; 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Pods/wgXibPersonCatogeryKit/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 wanggang1128 <978159546@qq.com> 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/wgXibPersonCatogeryKit/README.md: -------------------------------------------------------------------------------- 1 | # wgXibPersonCatogeryKit 2 | 3 | [![CI Status](https://img.shields.io/travis/wanggang1128/wgXibPersonCatogeryKit.svg?style=flat)](https://travis-ci.org/wanggang1128/wgXibPersonCatogeryKit) 4 | [![Version](https://img.shields.io/cocoapods/v/wgXibPersonCatogeryKit.svg?style=flat)](https://cocoapods.org/pods/wgXibPersonCatogeryKit) 5 | [![License](https://img.shields.io/cocoapods/l/wgXibPersonCatogeryKit.svg?style=flat)](https://cocoapods.org/pods/wgXibPersonCatogeryKit) 6 | [![Platform](https://img.shields.io/cocoapods/p/wgXibPersonCatogeryKit.svg?style=flat)](https://cocoapods.org/pods/wgXibPersonCatogeryKit) 7 | 8 | ## Example 9 | 10 | To run the example project, clone the repo, and run `pod install` from the Example directory first. 11 | 12 | ## Requirements 13 | 14 | ## Installation 15 | 16 | wgXibPersonCatogeryKit is available through [CocoaPods](https://cocoapods.org). To install 17 | it, simply add the following line to your Podfile: 18 | 19 | ```ruby 20 | pod 'wgXibPersonCatogeryKit' 21 | ``` 22 | 23 | ## Author 24 | 25 | wanggang1128, 978159546@qq.com 26 | 27 | ## License 28 | 29 | wgXibPersonCatogeryKit is available under the MIT license. See the LICENSE file for more info. 30 | -------------------------------------------------------------------------------- /Pods/wgXibPersonCatogeryKit/wgXibPersonCatogeryKit/Classes/ReplaceMe.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wgModularization/WGLearnMTMediatorDemo/480a24ff036390b572738d31179597d96f6562b5/Pods/wgXibPersonCatogeryKit/wgXibPersonCatogeryKit/Classes/ReplaceMe.m -------------------------------------------------------------------------------- /Pods/wgXibPersonCatogeryKit/wgXibPersonCatogeryKit/Classes/wgXibPersonCategory/CTMediator+TAXibPerson.h: -------------------------------------------------------------------------------- 1 | // 2 | // CTMediator+TAXibPerson.h 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/9/11. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface CTMediator (TAXibPerson) 12 | 13 | - (UIViewController *)xibPersonWithImgName:(NSString *)imgName; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Pods/wgXibPersonCatogeryKit/wgXibPersonCatogeryKit/Classes/wgXibPersonCategory/CTMediator+TAXibPerson.m: -------------------------------------------------------------------------------- 1 | // 2 | // CTMediator+TAXibPerson.m 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/9/11. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import "CTMediator+TAXibPerson.h" 10 | 11 | @implementation CTMediator (TAXibPerson) 12 | 13 | - (UIViewController *)xibPersonWithImgName:(NSString *)imgName{ 14 | 15 | NSMutableDictionary *dic = [[NSMutableDictionary alloc] init]; 16 | [dic setValue:imgName forKey:@"imgName"]; 17 | 18 | return [self performTarget:@"xibPersonViewController" action:@"xibPersonViewController" params:dic shouldCacheTarget:NO]; 19 | } 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemo.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 48; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 3272286A209305C800FF7ADB /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 32722869209305C800FF7ADB /* AppDelegate.m */; }; 11 | 3272286D209305C800FF7ADB /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3272286C209305C800FF7ADB /* ViewController.m */; }; 12 | 32722872209305C800FF7ADB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 32722871209305C800FF7ADB /* Assets.xcassets */; }; 13 | 32722875209305C800FF7ADB /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 32722873209305C800FF7ADB /* LaunchScreen.storyboard */; }; 14 | 32722878209305C800FF7ADB /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 32722877209305C800FF7ADB /* main.m */; }; 15 | 32722882209305C800FF7ADB /* WGLearnMTMediatorDemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 32722881209305C800FF7ADB /* WGLearnMTMediatorDemoTests.m */; }; 16 | 3272288D209305C800FF7ADB /* WGLearnMTMediatorDemoUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 3272288C209305C800FF7ADB /* WGLearnMTMediatorDemoUITests.m */; }; 17 | F157F71A0630AEA17A35D6FD /* libPods-WGLearnMTMediatorDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 548022E16851487050B06616 /* libPods-WGLearnMTMediatorDemo.a */; }; 18 | /* End PBXBuildFile section */ 19 | 20 | /* Begin PBXContainerItemProxy section */ 21 | 3272287E209305C800FF7ADB /* PBXContainerItemProxy */ = { 22 | isa = PBXContainerItemProxy; 23 | containerPortal = 3272285D209305C800FF7ADB /* Project object */; 24 | proxyType = 1; 25 | remoteGlobalIDString = 32722864209305C800FF7ADB; 26 | remoteInfo = WGLearnMTMediatorDemo; 27 | }; 28 | 32722889209305C800FF7ADB /* PBXContainerItemProxy */ = { 29 | isa = PBXContainerItemProxy; 30 | containerPortal = 3272285D209305C800FF7ADB /* Project object */; 31 | proxyType = 1; 32 | remoteGlobalIDString = 32722864209305C800FF7ADB; 33 | remoteInfo = WGLearnMTMediatorDemo; 34 | }; 35 | /* End PBXContainerItemProxy section */ 36 | 37 | /* Begin PBXFileReference section */ 38 | 32722865209305C800FF7ADB /* WGLearnMTMediatorDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WGLearnMTMediatorDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 39 | 32722868209305C800FF7ADB /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 40 | 32722869209305C800FF7ADB /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 41 | 3272286B209305C800FF7ADB /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; 42 | 3272286C209305C800FF7ADB /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; 43 | 32722871209305C800FF7ADB /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 44 | 32722874209305C800FF7ADB /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 45 | 32722876209305C800FF7ADB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 46 | 32722877209305C800FF7ADB /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 47 | 3272287D209305C800FF7ADB /* WGLearnMTMediatorDemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WGLearnMTMediatorDemoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 48 | 32722881209305C800FF7ADB /* WGLearnMTMediatorDemoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WGLearnMTMediatorDemoTests.m; sourceTree = ""; }; 49 | 32722883209305C800FF7ADB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50 | 32722888209305C800FF7ADB /* WGLearnMTMediatorDemoUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WGLearnMTMediatorDemoUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 51 | 3272288C209305C800FF7ADB /* WGLearnMTMediatorDemoUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WGLearnMTMediatorDemoUITests.m; sourceTree = ""; }; 52 | 3272288E209305C800FF7ADB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 53 | 548022E16851487050B06616 /* libPods-WGLearnMTMediatorDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-WGLearnMTMediatorDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 54 | 7708D9CEA609DD52F1231B20 /* Pods-WGLearnMTMediatorDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WGLearnMTMediatorDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-WGLearnMTMediatorDemo/Pods-WGLearnMTMediatorDemo.release.xcconfig"; sourceTree = ""; }; 55 | 89693CBC03B13FDAF663BDEA /* Pods-WGLearnMTMediatorDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WGLearnMTMediatorDemo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-WGLearnMTMediatorDemo/Pods-WGLearnMTMediatorDemo.debug.xcconfig"; sourceTree = ""; }; 56 | /* End PBXFileReference section */ 57 | 58 | /* Begin PBXFrameworksBuildPhase section */ 59 | 32722862209305C800FF7ADB /* Frameworks */ = { 60 | isa = PBXFrameworksBuildPhase; 61 | buildActionMask = 2147483647; 62 | files = ( 63 | F157F71A0630AEA17A35D6FD /* libPods-WGLearnMTMediatorDemo.a in Frameworks */, 64 | ); 65 | runOnlyForDeploymentPostprocessing = 0; 66 | }; 67 | 3272287A209305C800FF7ADB /* Frameworks */ = { 68 | isa = PBXFrameworksBuildPhase; 69 | buildActionMask = 2147483647; 70 | files = ( 71 | ); 72 | runOnlyForDeploymentPostprocessing = 0; 73 | }; 74 | 32722885209305C800FF7ADB /* Frameworks */ = { 75 | isa = PBXFrameworksBuildPhase; 76 | buildActionMask = 2147483647; 77 | files = ( 78 | ); 79 | runOnlyForDeploymentPostprocessing = 0; 80 | }; 81 | /* End PBXFrameworksBuildPhase section */ 82 | 83 | /* Begin PBXGroup section */ 84 | 3272285C209305C800FF7ADB = { 85 | isa = PBXGroup; 86 | children = ( 87 | 32722867209305C800FF7ADB /* WGLearnMTMediatorDemo */, 88 | 32722880209305C800FF7ADB /* WGLearnMTMediatorDemoTests */, 89 | 3272288B209305C800FF7ADB /* WGLearnMTMediatorDemoUITests */, 90 | 32722866209305C800FF7ADB /* Products */, 91 | 49813020B1670146C0B9E4E6 /* Pods */, 92 | F8F35BD2CDBE76E0A51AB5D6 /* Frameworks */, 93 | ); 94 | sourceTree = ""; 95 | }; 96 | 32722866209305C800FF7ADB /* Products */ = { 97 | isa = PBXGroup; 98 | children = ( 99 | 32722865209305C800FF7ADB /* WGLearnMTMediatorDemo.app */, 100 | 3272287D209305C800FF7ADB /* WGLearnMTMediatorDemoTests.xctest */, 101 | 32722888209305C800FF7ADB /* WGLearnMTMediatorDemoUITests.xctest */, 102 | ); 103 | name = Products; 104 | sourceTree = ""; 105 | }; 106 | 32722867209305C800FF7ADB /* WGLearnMTMediatorDemo */ = { 107 | isa = PBXGroup; 108 | children = ( 109 | 32722868209305C800FF7ADB /* AppDelegate.h */, 110 | 32722869209305C800FF7ADB /* AppDelegate.m */, 111 | 3272286B209305C800FF7ADB /* ViewController.h */, 112 | 3272286C209305C800FF7ADB /* ViewController.m */, 113 | 32722871209305C800FF7ADB /* Assets.xcassets */, 114 | 32722873209305C800FF7ADB /* LaunchScreen.storyboard */, 115 | 32722876209305C800FF7ADB /* Info.plist */, 116 | 32722877209305C800FF7ADB /* main.m */, 117 | ); 118 | path = WGLearnMTMediatorDemo; 119 | sourceTree = ""; 120 | }; 121 | 32722880209305C800FF7ADB /* WGLearnMTMediatorDemoTests */ = { 122 | isa = PBXGroup; 123 | children = ( 124 | 32722881209305C800FF7ADB /* WGLearnMTMediatorDemoTests.m */, 125 | 32722883209305C800FF7ADB /* Info.plist */, 126 | ); 127 | path = WGLearnMTMediatorDemoTests; 128 | sourceTree = ""; 129 | }; 130 | 3272288B209305C800FF7ADB /* WGLearnMTMediatorDemoUITests */ = { 131 | isa = PBXGroup; 132 | children = ( 133 | 3272288C209305C800FF7ADB /* WGLearnMTMediatorDemoUITests.m */, 134 | 3272288E209305C800FF7ADB /* Info.plist */, 135 | ); 136 | path = WGLearnMTMediatorDemoUITests; 137 | sourceTree = ""; 138 | }; 139 | 49813020B1670146C0B9E4E6 /* Pods */ = { 140 | isa = PBXGroup; 141 | children = ( 142 | 89693CBC03B13FDAF663BDEA /* Pods-WGLearnMTMediatorDemo.debug.xcconfig */, 143 | 7708D9CEA609DD52F1231B20 /* Pods-WGLearnMTMediatorDemo.release.xcconfig */, 144 | ); 145 | name = Pods; 146 | sourceTree = ""; 147 | }; 148 | F8F35BD2CDBE76E0A51AB5D6 /* Frameworks */ = { 149 | isa = PBXGroup; 150 | children = ( 151 | 548022E16851487050B06616 /* libPods-WGLearnMTMediatorDemo.a */, 152 | ); 153 | name = Frameworks; 154 | sourceTree = ""; 155 | }; 156 | /* End PBXGroup section */ 157 | 158 | /* Begin PBXNativeTarget section */ 159 | 32722864209305C800FF7ADB /* WGLearnMTMediatorDemo */ = { 160 | isa = PBXNativeTarget; 161 | buildConfigurationList = 32722891209305C800FF7ADB /* Build configuration list for PBXNativeTarget "WGLearnMTMediatorDemo" */; 162 | buildPhases = ( 163 | 648538BFF0C1B19359028691 /* [CP] Check Pods Manifest.lock */, 164 | 32722861209305C800FF7ADB /* Sources */, 165 | 32722862209305C800FF7ADB /* Frameworks */, 166 | 32722863209305C800FF7ADB /* Resources */, 167 | 0C1D421A8F52ED71A4E1FB1B /* [CP] Copy Pods Resources */, 168 | ); 169 | buildRules = ( 170 | ); 171 | dependencies = ( 172 | ); 173 | name = WGLearnMTMediatorDemo; 174 | productName = WGLearnMTMediatorDemo; 175 | productReference = 32722865209305C800FF7ADB /* WGLearnMTMediatorDemo.app */; 176 | productType = "com.apple.product-type.application"; 177 | }; 178 | 3272287C209305C800FF7ADB /* WGLearnMTMediatorDemoTests */ = { 179 | isa = PBXNativeTarget; 180 | buildConfigurationList = 32722894209305C800FF7ADB /* Build configuration list for PBXNativeTarget "WGLearnMTMediatorDemoTests" */; 181 | buildPhases = ( 182 | 32722879209305C800FF7ADB /* Sources */, 183 | 3272287A209305C800FF7ADB /* Frameworks */, 184 | 3272287B209305C800FF7ADB /* Resources */, 185 | ); 186 | buildRules = ( 187 | ); 188 | dependencies = ( 189 | 3272287F209305C800FF7ADB /* PBXTargetDependency */, 190 | ); 191 | name = WGLearnMTMediatorDemoTests; 192 | productName = WGLearnMTMediatorDemoTests; 193 | productReference = 3272287D209305C800FF7ADB /* WGLearnMTMediatorDemoTests.xctest */; 194 | productType = "com.apple.product-type.bundle.unit-test"; 195 | }; 196 | 32722887209305C800FF7ADB /* WGLearnMTMediatorDemoUITests */ = { 197 | isa = PBXNativeTarget; 198 | buildConfigurationList = 32722897209305C800FF7ADB /* Build configuration list for PBXNativeTarget "WGLearnMTMediatorDemoUITests" */; 199 | buildPhases = ( 200 | 32722884209305C800FF7ADB /* Sources */, 201 | 32722885209305C800FF7ADB /* Frameworks */, 202 | 32722886209305C800FF7ADB /* Resources */, 203 | ); 204 | buildRules = ( 205 | ); 206 | dependencies = ( 207 | 3272288A209305C800FF7ADB /* PBXTargetDependency */, 208 | ); 209 | name = WGLearnMTMediatorDemoUITests; 210 | productName = WGLearnMTMediatorDemoUITests; 211 | productReference = 32722888209305C800FF7ADB /* WGLearnMTMediatorDemoUITests.xctest */; 212 | productType = "com.apple.product-type.bundle.ui-testing"; 213 | }; 214 | /* End PBXNativeTarget section */ 215 | 216 | /* Begin PBXProject section */ 217 | 3272285D209305C800FF7ADB /* Project object */ = { 218 | isa = PBXProject; 219 | attributes = { 220 | LastUpgradeCheck = 0920; 221 | ORGANIZATIONNAME = wanggang; 222 | TargetAttributes = { 223 | 32722864209305C800FF7ADB = { 224 | CreatedOnToolsVersion = 9.2; 225 | ProvisioningStyle = Automatic; 226 | }; 227 | 3272287C209305C800FF7ADB = { 228 | CreatedOnToolsVersion = 9.2; 229 | ProvisioningStyle = Automatic; 230 | TestTargetID = 32722864209305C800FF7ADB; 231 | }; 232 | 32722887209305C800FF7ADB = { 233 | CreatedOnToolsVersion = 9.2; 234 | ProvisioningStyle = Automatic; 235 | TestTargetID = 32722864209305C800FF7ADB; 236 | }; 237 | }; 238 | }; 239 | buildConfigurationList = 32722860209305C800FF7ADB /* Build configuration list for PBXProject "WGLearnMTMediatorDemo" */; 240 | compatibilityVersion = "Xcode 8.0"; 241 | developmentRegion = en; 242 | hasScannedForEncodings = 0; 243 | knownRegions = ( 244 | en, 245 | Base, 246 | ); 247 | mainGroup = 3272285C209305C800FF7ADB; 248 | productRefGroup = 32722866209305C800FF7ADB /* Products */; 249 | projectDirPath = ""; 250 | projectRoot = ""; 251 | targets = ( 252 | 32722864209305C800FF7ADB /* WGLearnMTMediatorDemo */, 253 | 3272287C209305C800FF7ADB /* WGLearnMTMediatorDemoTests */, 254 | 32722887209305C800FF7ADB /* WGLearnMTMediatorDemoUITests */, 255 | ); 256 | }; 257 | /* End PBXProject section */ 258 | 259 | /* Begin PBXResourcesBuildPhase section */ 260 | 32722863209305C800FF7ADB /* Resources */ = { 261 | isa = PBXResourcesBuildPhase; 262 | buildActionMask = 2147483647; 263 | files = ( 264 | 32722875209305C800FF7ADB /* LaunchScreen.storyboard in Resources */, 265 | 32722872209305C800FF7ADB /* Assets.xcassets in Resources */, 266 | ); 267 | runOnlyForDeploymentPostprocessing = 0; 268 | }; 269 | 3272287B209305C800FF7ADB /* Resources */ = { 270 | isa = PBXResourcesBuildPhase; 271 | buildActionMask = 2147483647; 272 | files = ( 273 | ); 274 | runOnlyForDeploymentPostprocessing = 0; 275 | }; 276 | 32722886209305C800FF7ADB /* Resources */ = { 277 | isa = PBXResourcesBuildPhase; 278 | buildActionMask = 2147483647; 279 | files = ( 280 | ); 281 | runOnlyForDeploymentPostprocessing = 0; 282 | }; 283 | /* End PBXResourcesBuildPhase section */ 284 | 285 | /* Begin PBXShellScriptBuildPhase section */ 286 | 0C1D421A8F52ED71A4E1FB1B /* [CP] Copy Pods Resources */ = { 287 | isa = PBXShellScriptBuildPhase; 288 | buildActionMask = 2147483647; 289 | files = ( 290 | ); 291 | inputPaths = ( 292 | "${SRCROOT}/Pods/Target Support Files/Pods-WGLearnMTMediatorDemo/Pods-WGLearnMTMediatorDemo-resources.sh", 293 | "${PODS_CONFIGURATION_BUILD_DIR}/WGXibPersonKit/WGXibPersonKit.bundle", 294 | "${PODS_CONFIGURATION_BUILD_DIR}/wgPersonInfoKit/wgPersonInfoKit.bundle", 295 | ); 296 | name = "[CP] Copy Pods Resources"; 297 | outputPaths = ( 298 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WGXibPersonKit.bundle", 299 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/wgPersonInfoKit.bundle", 300 | ); 301 | runOnlyForDeploymentPostprocessing = 0; 302 | shellPath = /bin/sh; 303 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-WGLearnMTMediatorDemo/Pods-WGLearnMTMediatorDemo-resources.sh\"\n"; 304 | showEnvVarsInLog = 0; 305 | }; 306 | 648538BFF0C1B19359028691 /* [CP] Check Pods Manifest.lock */ = { 307 | isa = PBXShellScriptBuildPhase; 308 | buildActionMask = 2147483647; 309 | files = ( 310 | ); 311 | inputPaths = ( 312 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 313 | "${PODS_ROOT}/Manifest.lock", 314 | ); 315 | name = "[CP] Check Pods Manifest.lock"; 316 | outputPaths = ( 317 | "$(DERIVED_FILE_DIR)/Pods-WGLearnMTMediatorDemo-checkManifestLockResult.txt", 318 | ); 319 | runOnlyForDeploymentPostprocessing = 0; 320 | shellPath = /bin/sh; 321 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 322 | showEnvVarsInLog = 0; 323 | }; 324 | /* End PBXShellScriptBuildPhase section */ 325 | 326 | /* Begin PBXSourcesBuildPhase section */ 327 | 32722861209305C800FF7ADB /* Sources */ = { 328 | isa = PBXSourcesBuildPhase; 329 | buildActionMask = 2147483647; 330 | files = ( 331 | 3272286D209305C800FF7ADB /* ViewController.m in Sources */, 332 | 32722878209305C800FF7ADB /* main.m in Sources */, 333 | 3272286A209305C800FF7ADB /* AppDelegate.m in Sources */, 334 | ); 335 | runOnlyForDeploymentPostprocessing = 0; 336 | }; 337 | 32722879209305C800FF7ADB /* Sources */ = { 338 | isa = PBXSourcesBuildPhase; 339 | buildActionMask = 2147483647; 340 | files = ( 341 | 32722882209305C800FF7ADB /* WGLearnMTMediatorDemoTests.m in Sources */, 342 | ); 343 | runOnlyForDeploymentPostprocessing = 0; 344 | }; 345 | 32722884209305C800FF7ADB /* Sources */ = { 346 | isa = PBXSourcesBuildPhase; 347 | buildActionMask = 2147483647; 348 | files = ( 349 | 3272288D209305C800FF7ADB /* WGLearnMTMediatorDemoUITests.m in Sources */, 350 | ); 351 | runOnlyForDeploymentPostprocessing = 0; 352 | }; 353 | /* End PBXSourcesBuildPhase section */ 354 | 355 | /* Begin PBXTargetDependency section */ 356 | 3272287F209305C800FF7ADB /* PBXTargetDependency */ = { 357 | isa = PBXTargetDependency; 358 | target = 32722864209305C800FF7ADB /* WGLearnMTMediatorDemo */; 359 | targetProxy = 3272287E209305C800FF7ADB /* PBXContainerItemProxy */; 360 | }; 361 | 3272288A209305C800FF7ADB /* PBXTargetDependency */ = { 362 | isa = PBXTargetDependency; 363 | target = 32722864209305C800FF7ADB /* WGLearnMTMediatorDemo */; 364 | targetProxy = 32722889209305C800FF7ADB /* PBXContainerItemProxy */; 365 | }; 366 | /* End PBXTargetDependency section */ 367 | 368 | /* Begin PBXVariantGroup section */ 369 | 32722873209305C800FF7ADB /* LaunchScreen.storyboard */ = { 370 | isa = PBXVariantGroup; 371 | children = ( 372 | 32722874209305C800FF7ADB /* Base */, 373 | ); 374 | name = LaunchScreen.storyboard; 375 | sourceTree = ""; 376 | }; 377 | /* End PBXVariantGroup section */ 378 | 379 | /* Begin XCBuildConfiguration section */ 380 | 3272288F209305C800FF7ADB /* Debug */ = { 381 | isa = XCBuildConfiguration; 382 | buildSettings = { 383 | ALWAYS_SEARCH_USER_PATHS = NO; 384 | CLANG_ANALYZER_NONNULL = YES; 385 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 386 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 387 | CLANG_CXX_LIBRARY = "libc++"; 388 | CLANG_ENABLE_MODULES = YES; 389 | CLANG_ENABLE_OBJC_ARC = YES; 390 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 391 | CLANG_WARN_BOOL_CONVERSION = YES; 392 | CLANG_WARN_COMMA = YES; 393 | CLANG_WARN_CONSTANT_CONVERSION = YES; 394 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 395 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 396 | CLANG_WARN_EMPTY_BODY = YES; 397 | CLANG_WARN_ENUM_CONVERSION = YES; 398 | CLANG_WARN_INFINITE_RECURSION = YES; 399 | CLANG_WARN_INT_CONVERSION = YES; 400 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 401 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 402 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 403 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 404 | CLANG_WARN_STRICT_PROTOTYPES = YES; 405 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 406 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 407 | CLANG_WARN_UNREACHABLE_CODE = YES; 408 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 409 | CODE_SIGN_IDENTITY = "iPhone Developer"; 410 | COPY_PHASE_STRIP = NO; 411 | DEBUG_INFORMATION_FORMAT = dwarf; 412 | ENABLE_STRICT_OBJC_MSGSEND = YES; 413 | ENABLE_TESTABILITY = YES; 414 | GCC_C_LANGUAGE_STANDARD = gnu11; 415 | GCC_DYNAMIC_NO_PIC = NO; 416 | GCC_NO_COMMON_BLOCKS = YES; 417 | GCC_OPTIMIZATION_LEVEL = 0; 418 | GCC_PREPROCESSOR_DEFINITIONS = ( 419 | "DEBUG=1", 420 | "$(inherited)", 421 | ); 422 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 423 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 424 | GCC_WARN_UNDECLARED_SELECTOR = YES; 425 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 426 | GCC_WARN_UNUSED_FUNCTION = YES; 427 | GCC_WARN_UNUSED_VARIABLE = YES; 428 | IPHONEOS_DEPLOYMENT_TARGET = 11.2; 429 | MTL_ENABLE_DEBUG_INFO = YES; 430 | ONLY_ACTIVE_ARCH = YES; 431 | SDKROOT = iphoneos; 432 | }; 433 | name = Debug; 434 | }; 435 | 32722890209305C800FF7ADB /* Release */ = { 436 | isa = XCBuildConfiguration; 437 | buildSettings = { 438 | ALWAYS_SEARCH_USER_PATHS = NO; 439 | CLANG_ANALYZER_NONNULL = YES; 440 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 441 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 442 | CLANG_CXX_LIBRARY = "libc++"; 443 | CLANG_ENABLE_MODULES = YES; 444 | CLANG_ENABLE_OBJC_ARC = YES; 445 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 446 | CLANG_WARN_BOOL_CONVERSION = YES; 447 | CLANG_WARN_COMMA = YES; 448 | CLANG_WARN_CONSTANT_CONVERSION = YES; 449 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 450 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 451 | CLANG_WARN_EMPTY_BODY = YES; 452 | CLANG_WARN_ENUM_CONVERSION = YES; 453 | CLANG_WARN_INFINITE_RECURSION = YES; 454 | CLANG_WARN_INT_CONVERSION = YES; 455 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 456 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 457 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 458 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 459 | CLANG_WARN_STRICT_PROTOTYPES = YES; 460 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 461 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 462 | CLANG_WARN_UNREACHABLE_CODE = YES; 463 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 464 | CODE_SIGN_IDENTITY = "iPhone Developer"; 465 | COPY_PHASE_STRIP = NO; 466 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 467 | ENABLE_NS_ASSERTIONS = NO; 468 | ENABLE_STRICT_OBJC_MSGSEND = YES; 469 | GCC_C_LANGUAGE_STANDARD = gnu11; 470 | GCC_NO_COMMON_BLOCKS = YES; 471 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 472 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 473 | GCC_WARN_UNDECLARED_SELECTOR = YES; 474 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 475 | GCC_WARN_UNUSED_FUNCTION = YES; 476 | GCC_WARN_UNUSED_VARIABLE = YES; 477 | IPHONEOS_DEPLOYMENT_TARGET = 11.2; 478 | MTL_ENABLE_DEBUG_INFO = NO; 479 | SDKROOT = iphoneos; 480 | VALIDATE_PRODUCT = YES; 481 | }; 482 | name = Release; 483 | }; 484 | 32722892209305C800FF7ADB /* Debug */ = { 485 | isa = XCBuildConfiguration; 486 | baseConfigurationReference = 89693CBC03B13FDAF663BDEA /* Pods-WGLearnMTMediatorDemo.debug.xcconfig */; 487 | buildSettings = { 488 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 489 | CODE_SIGN_STYLE = Automatic; 490 | DEVELOPMENT_TEAM = 49T87S5RLN; 491 | INFOPLIST_FILE = WGLearnMTMediatorDemo/Info.plist; 492 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 493 | PRODUCT_BUNDLE_IDENTIFIER = com.wanggang.WGLearnMTMediatorDemo; 494 | PRODUCT_NAME = "$(TARGET_NAME)"; 495 | TARGETED_DEVICE_FAMILY = "1,2"; 496 | }; 497 | name = Debug; 498 | }; 499 | 32722893209305C800FF7ADB /* Release */ = { 500 | isa = XCBuildConfiguration; 501 | baseConfigurationReference = 7708D9CEA609DD52F1231B20 /* Pods-WGLearnMTMediatorDemo.release.xcconfig */; 502 | buildSettings = { 503 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 504 | CODE_SIGN_STYLE = Automatic; 505 | DEVELOPMENT_TEAM = 49T87S5RLN; 506 | INFOPLIST_FILE = WGLearnMTMediatorDemo/Info.plist; 507 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 508 | PRODUCT_BUNDLE_IDENTIFIER = com.wanggang.WGLearnMTMediatorDemo; 509 | PRODUCT_NAME = "$(TARGET_NAME)"; 510 | TARGETED_DEVICE_FAMILY = "1,2"; 511 | }; 512 | name = Release; 513 | }; 514 | 32722895209305C800FF7ADB /* Debug */ = { 515 | isa = XCBuildConfiguration; 516 | buildSettings = { 517 | BUNDLE_LOADER = "$(TEST_HOST)"; 518 | CODE_SIGN_STYLE = Automatic; 519 | DEVELOPMENT_TEAM = 49T87S5RLN; 520 | INFOPLIST_FILE = WGLearnMTMediatorDemoTests/Info.plist; 521 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 522 | PRODUCT_BUNDLE_IDENTIFIER = com.wanggang.WGLearnMTMediatorDemoTests; 523 | PRODUCT_NAME = "$(TARGET_NAME)"; 524 | TARGETED_DEVICE_FAMILY = "1,2"; 525 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/WGLearnMTMediatorDemo.app/WGLearnMTMediatorDemo"; 526 | }; 527 | name = Debug; 528 | }; 529 | 32722896209305C800FF7ADB /* Release */ = { 530 | isa = XCBuildConfiguration; 531 | buildSettings = { 532 | BUNDLE_LOADER = "$(TEST_HOST)"; 533 | CODE_SIGN_STYLE = Automatic; 534 | DEVELOPMENT_TEAM = 49T87S5RLN; 535 | INFOPLIST_FILE = WGLearnMTMediatorDemoTests/Info.plist; 536 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 537 | PRODUCT_BUNDLE_IDENTIFIER = com.wanggang.WGLearnMTMediatorDemoTests; 538 | PRODUCT_NAME = "$(TARGET_NAME)"; 539 | TARGETED_DEVICE_FAMILY = "1,2"; 540 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/WGLearnMTMediatorDemo.app/WGLearnMTMediatorDemo"; 541 | }; 542 | name = Release; 543 | }; 544 | 32722898209305C800FF7ADB /* Debug */ = { 545 | isa = XCBuildConfiguration; 546 | buildSettings = { 547 | CODE_SIGN_STYLE = Automatic; 548 | DEVELOPMENT_TEAM = 49T87S5RLN; 549 | INFOPLIST_FILE = WGLearnMTMediatorDemoUITests/Info.plist; 550 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 551 | PRODUCT_BUNDLE_IDENTIFIER = com.wanggang.WGLearnMTMediatorDemoUITests; 552 | PRODUCT_NAME = "$(TARGET_NAME)"; 553 | TARGETED_DEVICE_FAMILY = "1,2"; 554 | TEST_TARGET_NAME = WGLearnMTMediatorDemo; 555 | }; 556 | name = Debug; 557 | }; 558 | 32722899209305C800FF7ADB /* Release */ = { 559 | isa = XCBuildConfiguration; 560 | buildSettings = { 561 | CODE_SIGN_STYLE = Automatic; 562 | DEVELOPMENT_TEAM = 49T87S5RLN; 563 | INFOPLIST_FILE = WGLearnMTMediatorDemoUITests/Info.plist; 564 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 565 | PRODUCT_BUNDLE_IDENTIFIER = com.wanggang.WGLearnMTMediatorDemoUITests; 566 | PRODUCT_NAME = "$(TARGET_NAME)"; 567 | TARGETED_DEVICE_FAMILY = "1,2"; 568 | TEST_TARGET_NAME = WGLearnMTMediatorDemo; 569 | }; 570 | name = Release; 571 | }; 572 | /* End XCBuildConfiguration section */ 573 | 574 | /* Begin XCConfigurationList section */ 575 | 32722860209305C800FF7ADB /* Build configuration list for PBXProject "WGLearnMTMediatorDemo" */ = { 576 | isa = XCConfigurationList; 577 | buildConfigurations = ( 578 | 3272288F209305C800FF7ADB /* Debug */, 579 | 32722890209305C800FF7ADB /* Release */, 580 | ); 581 | defaultConfigurationIsVisible = 0; 582 | defaultConfigurationName = Release; 583 | }; 584 | 32722891209305C800FF7ADB /* Build configuration list for PBXNativeTarget "WGLearnMTMediatorDemo" */ = { 585 | isa = XCConfigurationList; 586 | buildConfigurations = ( 587 | 32722892209305C800FF7ADB /* Debug */, 588 | 32722893209305C800FF7ADB /* Release */, 589 | ); 590 | defaultConfigurationIsVisible = 0; 591 | defaultConfigurationName = Release; 592 | }; 593 | 32722894209305C800FF7ADB /* Build configuration list for PBXNativeTarget "WGLearnMTMediatorDemoTests" */ = { 594 | isa = XCConfigurationList; 595 | buildConfigurations = ( 596 | 32722895209305C800FF7ADB /* Debug */, 597 | 32722896209305C800FF7ADB /* Release */, 598 | ); 599 | defaultConfigurationIsVisible = 0; 600 | defaultConfigurationName = Release; 601 | }; 602 | 32722897209305C800FF7ADB /* Build configuration list for PBXNativeTarget "WGLearnMTMediatorDemoUITests" */ = { 603 | isa = XCConfigurationList; 604 | buildConfigurations = ( 605 | 32722898209305C800FF7ADB /* Debug */, 606 | 32722899209305C800FF7ADB /* Release */, 607 | ); 608 | defaultConfigurationIsVisible = 0; 609 | defaultConfigurationName = Release; 610 | }; 611 | /* End XCConfigurationList section */ 612 | }; 613 | rootObject = 3272285D209305C800FF7ADB /* Project object */; 614 | } 615 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemo.xcodeproj/xcuserdata/wanggang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | WGLearnMTMediatorDemo.xcscheme 8 | 9 | orderHint 10 | 11 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemo.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemo.xcworkspace/xcuserdata/wanggang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/4/27. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemo/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/4/27. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | #import "ViewController.h" 11 | 12 | @interface AppDelegate () 13 | 14 | @end 15 | 16 | @implementation AppDelegate 17 | 18 | 19 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 20 | 21 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 22 | self.window.backgroundColor = [UIColor whiteColor]; 23 | 24 | ViewController *con = [[ViewController alloc] init]; 25 | UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:con]; 26 | 27 | self.window.rootViewController = nav; 28 | [self.window makeKeyAndVisible]; 29 | 30 | return YES; 31 | } 32 | 33 | 34 | - (void)applicationWillResignActive:(UIApplication *)application { 35 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 36 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 37 | } 38 | 39 | 40 | - (void)applicationDidEnterBackground:(UIApplication *)application { 41 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 42 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 43 | } 44 | 45 | 46 | - (void)applicationWillEnterForeground:(UIApplication *)application { 47 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 48 | } 49 | 50 | 51 | - (void)applicationDidBecomeActive:(UIApplication *)application { 52 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 53 | } 54 | 55 | 56 | - (void)applicationWillTerminate:(UIApplication *)application { 57 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 58 | } 59 | 60 | 61 | @end 62 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemo/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "20x20", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "20x20", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "29x29", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "29x29", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "size" : "40x40", 66 | "scale" : "1x" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "size" : "40x40", 71 | "scale" : "2x" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "size" : "76x76", 76 | "scale" : "1x" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "size" : "76x76", 81 | "scale" : "2x" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "size" : "83.5x83.5", 86 | "scale" : "2x" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "size" : "1024x1024", 91 | "scale" : "1x" 92 | } 93 | ], 94 | "info" : { 95 | "version" : 1, 96 | "author" : "xcode" 97 | } 98 | } -------------------------------------------------------------------------------- /WGLearnMTMediatorDemo/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIRequiredDeviceCapabilities 26 | 27 | armv7 28 | 29 | UISupportedInterfaceOrientations 30 | 31 | UIInterfaceOrientationPortrait 32 | UIInterfaceOrientationLandscapeLeft 33 | UIInterfaceOrientationLandscapeRight 34 | 35 | UISupportedInterfaceOrientations~ipad 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationPortraitUpsideDown 39 | UIInterfaceOrientationLandscapeLeft 40 | UIInterfaceOrientationLandscapeRight 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/4/27. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemo/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/4/27. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import "CTMediator+TAPersonInfo.h" 11 | #import "CTMediator+TAXibPerson.h" 12 | 13 | @interface ViewController () 14 | 15 | @property (nonatomic, strong) UIButton *perInfoBtn; 16 | @property (nonatomic, strong) UIButton *xibBtn; 17 | 18 | @end 19 | 20 | @implementation ViewController 21 | 22 | - (void)viewDidLoad { 23 | [super viewDidLoad]; 24 | 25 | [self.view addSubview:self.perInfoBtn]; 26 | [self.view addSubview:self.xibBtn]; 27 | 28 | } 29 | 30 | - (void)btnClicked{ 31 | UIViewController *con = [[CTMediator sharedInstance] personInfoWithName:@"寒江" age:18]; 32 | [self.navigationController pushViewController:con animated:YES]; 33 | } 34 | 35 | //xib文件组件化显示 36 | - (void)xibBtnClicked{ 37 | UIViewController *con = [[CTMediator sharedInstance] xibPersonWithImgName:@"Group"]; 38 | [self.navigationController pushViewController:con animated:YES]; 39 | } 40 | 41 | -(UIButton *)xibBtn{ 42 | if (!_xibBtn) { 43 | _xibBtn = [[UIButton alloc] initWithFrame:CGRectMake(100, 400, 200, 40)]; 44 | [_xibBtn setTitle:@"xib文件组件化显示" forState:UIControlStateNormal]; 45 | [_xibBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 46 | [_xibBtn setBackgroundColor:[UIColor greenColor]]; 47 | [_xibBtn addTarget:self action:@selector(xibBtnClicked) forControlEvents:UIControlEventTouchUpInside]; 48 | } 49 | return _xibBtn; 50 | } 51 | 52 | -(UIButton *)perInfoBtn{ 53 | if (!_perInfoBtn) { 54 | _perInfoBtn = [[UIButton alloc] initWithFrame:CGRectMake(100, 300, 100, 40)]; 55 | [_perInfoBtn setTitle:@"个人详情" forState:UIControlStateNormal]; 56 | [_perInfoBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 57 | [_perInfoBtn setBackgroundColor:[UIColor greenColor]]; 58 | [_perInfoBtn addTarget:self action:@selector(btnClicked) forControlEvents:UIControlEventTouchUpInside]; 59 | } 60 | return _perInfoBtn; 61 | } 62 | 63 | 64 | 65 | 66 | @end 67 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // WGLearnMTMediatorDemo 4 | // 5 | // Created by wanggang on 2018/4/27. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemoTests/WGLearnMTMediatorDemoTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // WGLearnMTMediatorDemoTests.m 3 | // WGLearnMTMediatorDemoTests 4 | // 5 | // Created by wanggang on 2018/4/27. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface WGLearnMTMediatorDemoTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation WGLearnMTMediatorDemoTests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | // Put setup code here. This method is called before the invocation of each test method in the class. 20 | } 21 | 22 | - (void)tearDown { 23 | // Put teardown code here. This method is called after the invocation of each test method in the class. 24 | [super tearDown]; 25 | } 26 | 27 | - (void)testExample { 28 | // This is an example of a functional test case. 29 | // Use XCTAssert and related functions to verify your tests produce the correct results. 30 | } 31 | 32 | - (void)testPerformanceExample { 33 | // This is an example of a performance test case. 34 | [self measureBlock:^{ 35 | // Put the code you want to measure the time of here. 36 | }]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemoUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /WGLearnMTMediatorDemoUITests/WGLearnMTMediatorDemoUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // WGLearnMTMediatorDemoUITests.m 3 | // WGLearnMTMediatorDemoUITests 4 | // 5 | // Created by wanggang on 2018/4/27. 6 | // Copyright © 2018年 wanggang. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface WGLearnMTMediatorDemoUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation WGLearnMTMediatorDemoUITests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | 22 | // In UI tests it is usually best to stop immediately when a failure occurs. 23 | self.continueAfterFailure = NO; 24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 25 | [[[XCUIApplication alloc] init] launch]; 26 | 27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 28 | } 29 | 30 | - (void)tearDown { 31 | // Put teardown code here. This method is called after the invocation of each test method in the class. 32 | [super tearDown]; 33 | } 34 | 35 | - (void)testExample { 36 | // Use recording to get started writing UI tests. 37 | // Use XCTAssert and related functions to verify your tests produce the correct results. 38 | } 39 | 40 | @end 41 | --------------------------------------------------------------------------------