├── YHLazyCode.app └── Contents │ ├── PkgInfo │ ├── MacOS │ └── YHLazyCode │ ├── Resources │ └── Base.lproj │ │ └── Main.storyboardc │ │ ├── Info.plist │ │ ├── MainMenu.nib │ │ ├── XfG-lQ-9wD-view-m2S-Jp-Qdl.nib │ │ └── NSWindowController-B8D-0N-5wS.nib │ ├── PlugIns │ └── YHLazyCodePlugin.appex │ │ └── Contents │ │ ├── MacOS │ │ └── YHLazyCodePlugin │ │ ├── Info.plist │ │ └── _CodeSignature │ │ └── CodeResources │ ├── Info.plist │ └── _CodeSignature │ └── CodeResources ├── YHLazyCode.xcodeproj ├── project.xcworkspace │ └── contents.xcworkspacedata ├── xcuserdata │ └── masterfly.xcuserdatad │ │ ├── xcschemes │ │ ├── xcschememanagement.plist │ │ ├── YHLazyCodePlugin.xcscheme │ │ └── YHLazyCode.xcscheme │ │ └── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist └── project.pbxproj ├── YHLazyCodeTool ├── YHLazyCodeTool.entitlements ├── SourceEditorCommand.h ├── SourceEditorExtension.h ├── NSString+Add.h ├── SourceEditorExtension.m ├── YHLazyCode.h ├── NSString+Add.m ├── SourceEditorCommand.m ├── Info.plist └── YHLazyCode.m ├── YHLazyCode ├── ViewController.h ├── main.m ├── AppDelegate.h ├── AppDelegate.m ├── ViewController.m ├── Info.plist ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json └── Base.lproj │ └── Main.storyboard ├── YHLazyCodeShell ├── propertys.txt ├── run.sh └── out.txt ├── YHLazyCodeTests ├── Info.plist └── YHLazyCodeTests.m ├── YHLazyCodeUITests ├── Info.plist └── YHLazyCodeUITests.m └── README.md /YHLazyCode.app/Contents/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? -------------------------------------------------------------------------------- /YHLazyCode.app/Contents/MacOS/YHLazyCode: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ymoyao/YHLazyCode/HEAD/YHLazyCode.app/Contents/MacOS/YHLazyCode -------------------------------------------------------------------------------- /YHLazyCode.app/Contents/Resources/Base.lproj/Main.storyboardc/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ymoyao/YHLazyCode/HEAD/YHLazyCode.app/Contents/Resources/Base.lproj/Main.storyboardc/Info.plist -------------------------------------------------------------------------------- /YHLazyCode.app/Contents/Resources/Base.lproj/Main.storyboardc/MainMenu.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ymoyao/YHLazyCode/HEAD/YHLazyCode.app/Contents/Resources/Base.lproj/Main.storyboardc/MainMenu.nib -------------------------------------------------------------------------------- /YHLazyCode.app/Contents/PlugIns/YHLazyCodePlugin.appex/Contents/MacOS/YHLazyCodePlugin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ymoyao/YHLazyCode/HEAD/YHLazyCode.app/Contents/PlugIns/YHLazyCodePlugin.appex/Contents/MacOS/YHLazyCodePlugin -------------------------------------------------------------------------------- /YHLazyCode.app/Contents/Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ymoyao/YHLazyCode/HEAD/YHLazyCode.app/Contents/Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib -------------------------------------------------------------------------------- /YHLazyCode.app/Contents/Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ymoyao/YHLazyCode/HEAD/YHLazyCode.app/Contents/Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib -------------------------------------------------------------------------------- /YHLazyCode.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /YHLazyCodeTool/YHLazyCodeTool.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /YHLazyCode/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // YHLazyCode 4 | // 5 | // Created by MasterFly on 2017/6/9. 6 | // Copyright © 2017年 MasterFly. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : NSViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /YHLazyCode/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // YHLazyCode 4 | // 5 | // Created by MasterFly on 2017/6/9. 6 | // Copyright © 2017年 MasterFly. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, const char * argv[]) { 12 | return NSApplicationMain(argc, argv); 13 | } 14 | -------------------------------------------------------------------------------- /YHLazyCode/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // YHLazyCode 4 | // 5 | // Created by MasterFly on 2017/6/9. 6 | // Copyright © 2017年 MasterFly. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : NSObject 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /YHLazyCodeTool/SourceEditorCommand.h: -------------------------------------------------------------------------------- 1 | // 2 | // SourceEditorCommand.h 3 | // YHLazyCodeTool 4 | // 5 | // Created by MasterFly on 2017/6/9. 6 | // Copyright © 2017年 MasterFly. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SourceEditorCommand : NSObject 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /YHLazyCodeTool/SourceEditorExtension.h: -------------------------------------------------------------------------------- 1 | // 2 | // SourceEditorExtension.h 3 | // YHLazyCodeTool 4 | // 5 | // Created by MasterFly on 2017/6/9. 6 | // Copyright © 2017年 MasterFly. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SourceEditorExtension : NSObject 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /YHLazyCodeTool/NSString+Add.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+Add.h 3 | // YHLazyCode 4 | // 5 | // Created by MasterFly on 2017/6/9. 6 | // Copyright © 2017年 MasterFly. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSString (Add) 12 | 13 | 14 | /** 15 | 返回中间字符串 16 | 17 | @param leftStr 左边字符 18 | @param rightStr 右边字符 19 | @return 中间字符串 20 | */ 21 | - (NSString *)stringBetweenLeftStr:(NSString *)leftStr andRightStr:(NSString *)rightStr; 22 | @end 23 | -------------------------------------------------------------------------------- /YHLazyCodeShell/propertys.txt: -------------------------------------------------------------------------------- 1 | @property (nonatomic, strong) UIView *bgView; 2 | @property (nonatomic, strong) UIImageView *mainImageView; 3 | @property (nonatomic, strong) UIView *mainModuleView; 4 | @property (nonatomic, strong) UILabel *congratulationOrSorryLabel; 5 | @property (nonatomic, strong) UILabel *resultLabel; 6 | @property (nonatomic, strong) UILabel *timeOrTipLabel; 7 | @property (nonatomic, strong) UIButton *orderBtn; 8 | @property (nonatomic, strong) UILabel *phoneNumOrSubTipLabel; 9 | 10 | -------------------------------------------------------------------------------- /YHLazyCode/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // YHLazyCode 4 | // 5 | // Created by MasterFly on 2017/6/9. 6 | // Copyright © 2017年 MasterFly. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | @interface AppDelegate () 12 | 13 | @end 14 | 15 | @implementation AppDelegate 16 | 17 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 18 | // Insert code here to initialize your application 19 | } 20 | 21 | 22 | - (void)applicationWillTerminate:(NSNotification *)aNotification { 23 | // Insert code here to tear down your application 24 | } 25 | 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /YHLazyCodeShell/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | iosBatchLazyCode(){ 3 | 4 | if test $1 = "UIButton" ; then 5 | str="[$1 buttonWithType:UIButtonTypeCustom];" 6 | else 7 | str="[[$1 alloc]init];" 8 | fi 9 | echo -e " 10 | - ($1 *)$2{ 11 | if (_$2 == nil) { 12 | _$2 = $str 13 | } 14 | return _$2; 15 | }" 16 | } 17 | 18 | #追加一行空格 19 | echo -e '\n' >> propertys.txt 20 | 21 | #读取文件存数组 22 | i=0 23 | while read line 24 | do 25 | lineStr=$line 26 | noneSpaceStr=${lineStr// /} 27 | ARR[$i]=$noneSpaceStr 28 | let i+=1 29 | done < propertys.txt 30 | 31 | #格式化输出到out.txt 32 | for str in ${ARR[*]} 33 | do 34 | a=${str#*)} 35 | b=${a%"*"*} 36 | 37 | c=${str#*"*"} 38 | d=${c%*;} 39 | iosBatchLazyCode $b $d 40 | done >> out.txt 41 | 42 | -------------------------------------------------------------------------------- /YHLazyCodeTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 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 | -------------------------------------------------------------------------------- /YHLazyCodeTool/SourceEditorExtension.m: -------------------------------------------------------------------------------- 1 | // 2 | // SourceEditorExtension.m 3 | // YHLazyCodeTool 4 | // 5 | // Created by MasterFly on 2017/6/9. 6 | // Copyright © 2017年 MasterFly. All rights reserved. 7 | // 8 | 9 | #import "SourceEditorExtension.h" 10 | 11 | @implementation SourceEditorExtension 12 | 13 | /* 14 | - (void)extensionDidFinishLaunching 15 | { 16 | // If your extension needs to do any work at launch, implement this optional method. 17 | } 18 | */ 19 | 20 | /* 21 | - (NSArray *> *)commandDefinitions 22 | { 23 | // If your extension needs to return a collection of command definitions that differs from those in its Info.plist, implement this optional property getter. 24 | return @[]; 25 | } 26 | */ 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /YHLazyCodeUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 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 | -------------------------------------------------------------------------------- /YHLazyCodeTool/YHLazyCode.h: -------------------------------------------------------------------------------- 1 | // 2 | // YHLazyCode.h 3 | // YHLazyCode 4 | // 5 | // Created by MasterFly on 2017/6/9. 6 | // Copyright © 2017年 MasterFly. All rights reserved. 7 | // 8 | /************************************************************************************************************ 9 | 写这个的目的是为了减少懒加载的重复代码,提高code 效率. 10 | GitHub:https://github.com/developeryh 11 | 简书:http://www.jianshu.com/u/5fdaf204eb9e 12 | *************************************************************************************************************/ 13 | 14 | #import 15 | 16 | @interface YHLazyCode : NSObject 17 | 18 | 19 | /** 20 | 添加懒加载的函数到对应的文件中 21 | 22 | @param invocation invocation 23 | */ 24 | + (void)addLazyCodeWithInvocation:(XCSourceEditorCommandInvocation *)invocation; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /YHLazyCodeTool/NSString+Add.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+Add.m 3 | // YHLazyCode 4 | // 5 | // Created by MasterFly on 2017/6/9. 6 | // Copyright © 2017年 MasterFly. All rights reserved. 7 | // 8 | 9 | #import "NSString+Add.h" 10 | 11 | @implementation NSString (Add) 12 | 13 | 14 | 15 | /** 16 | 返回中间字符串 17 | 18 | @param leftStr 左边字符 19 | @param rightStr 右边字符 20 | @return 中间字符串 21 | */ 22 | - (NSString *)stringBetweenLeftStr:(NSString *)leftStr andRightStr:(NSString *)rightStr{ 23 | NSString *str = @""; 24 | NSArray *arr = [self componentsSeparatedByString:leftStr]; 25 | if (arr.count > 1) { 26 | NSArray * subArr = [arr[1] componentsSeparatedByString:rightStr]; 27 | if (subArr.count > 0) { 28 | str = subArr.firstObject; 29 | } 30 | } 31 | return str; 32 | } 33 | 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /YHLazyCode/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // YHLazyCode 4 | // 5 | // Created by MasterFly on 2017/6/9. 6 | // Copyright © 2017年 MasterFly. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | 11 | @interface ViewController () 12 | @property (nonatomic, strong) NSView *aview; 13 | @property (nonatomic, strong) NSCollectionView *bview; 14 | @property (nonatomic, strong) NSTableView *cview; 15 | @property (nonatomic, strong) NSMutableArray *dArray; 16 | 17 | 18 | 19 | @end 20 | @implementation ViewController 21 | 22 | - (void)viewDidLoad { 23 | [super viewDidLoad]; 24 | 25 | // Do any additional setup after loading the view. 26 | } 27 | 28 | 29 | - (void)setRepresentedObject:(id)representedObject { 30 | [super setRepresentedObject:representedObject]; 31 | 32 | // Update the view, if already loaded. 33 | } 34 | 35 | 36 | #pragma mark - Get and Set 37 | 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /YHLazyCodeTool/SourceEditorCommand.m: -------------------------------------------------------------------------------- 1 | // 2 | // SourceEditorCommand.m 3 | // YHLazyCodeTool 4 | // 5 | // Created by MasterFly on 2017/6/9. 6 | // Copyright © 2017年 MasterFly. All rights reserved. 7 | // 8 | 9 | #import "SourceEditorCommand.h" 10 | #import "YHLazyCode.h" 11 | 12 | @implementation SourceEditorCommand 13 | 14 | - (void)performCommandWithInvocation:(XCSourceEditorCommandInvocation *)invocation completionHandler:(void (^)(NSError * _Nullable nilOrError))completionHandler 15 | { 16 | // Implement your command here, invoking the completion handler when done. Pass it nil on success, and an NSError on failure. 17 | 18 | NSString *identifier = invocation.commandIdentifier; 19 | 20 | if ([identifier hasPrefix:@"com.YHLazyCode"]) { 21 | 22 | //添加懒加载 23 | [YHLazyCode addLazyCodeWithInvocation:invocation]; 24 | } 25 | completionHandler(nil); 26 | 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /YHLazyCodeTests/YHLazyCodeTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // YHLazyCodeTests.m 3 | // YHLazyCodeTests 4 | // 5 | // Created by MasterFly on 2017/6/9. 6 | // Copyright © 2017年 MasterFly. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface YHLazyCodeTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation YHLazyCodeTests 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 | -------------------------------------------------------------------------------- /YHLazyCode.xcodeproj/xcuserdata/masterfly.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | YHLazyCode.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | YHLazyCodePlugin.xcscheme 13 | 14 | orderHint 15 | 1 16 | 17 | 18 | SuppressBuildableAutocreation 19 | 20 | AE4F42E41EEA91730026430A 21 | 22 | primary 23 | 24 | 25 | AE4F42FA1EEA91730026430A 26 | 27 | primary 28 | 29 | 30 | AE4F43051EEA91730026430A 31 | 32 | primary 33 | 34 | 35 | AE4F431B1EEA91D30026430A 36 | 37 | primary 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /YHLazyCode/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSHumanReadableCopyright 26 | Copyright © 2017年 MasterFly. All rights reserved. 27 | NSMainStoryboardFile 28 | Main 29 | NSPrincipalClass 30 | NSApplication 31 | 32 | 33 | -------------------------------------------------------------------------------- /YHLazyCode/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "mac", 5 | "size" : "16x16", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "mac", 10 | "size" : "16x16", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "mac", 15 | "size" : "32x32", 16 | "scale" : "1x" 17 | }, 18 | { 19 | "idiom" : "mac", 20 | "size" : "32x32", 21 | "scale" : "2x" 22 | }, 23 | { 24 | "idiom" : "mac", 25 | "size" : "128x128", 26 | "scale" : "1x" 27 | }, 28 | { 29 | "idiom" : "mac", 30 | "size" : "128x128", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "idiom" : "mac", 35 | "size" : "256x256", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "mac", 40 | "size" : "256x256", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "mac", 45 | "size" : "512x512", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "mac", 50 | "size" : "512x512", 51 | "scale" : "2x" 52 | } 53 | ], 54 | "info" : { 55 | "version" : 1, 56 | "author" : "xcode" 57 | } 58 | } -------------------------------------------------------------------------------- /YHLazyCodeUITests/YHLazyCodeUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // YHLazyCodeUITests.m 3 | // YHLazyCodeUITests 4 | // 5 | // Created by MasterFly on 2017/6/9. 6 | // Copyright © 2017年 MasterFly. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface YHLazyCodeUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation YHLazyCodeUITests 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 | -------------------------------------------------------------------------------- /YHLazyCodeShell/out.txt: -------------------------------------------------------------------------------- 1 | 2 | - (UIView *)bgView{ 3 | if (_bgView == nil) { 4 | _bgView = [[UIView alloc]init]; 5 | } 6 | return _bgView; 7 | } 8 | 9 | - (UIImageView *)mainImageView{ 10 | if (_mainImageView == nil) { 11 | _mainImageView = [[UIImageView alloc]init]; 12 | } 13 | return _mainImageView; 14 | } 15 | 16 | - (UIView *)mainModuleView{ 17 | if (_mainModuleView == nil) { 18 | _mainModuleView = [[UIView alloc]init]; 19 | } 20 | return _mainModuleView; 21 | } 22 | 23 | - (UILabel *)congratulationOrSorryLabel{ 24 | if (_congratulationOrSorryLabel == nil) { 25 | _congratulationOrSorryLabel = [[UILabel alloc]init]; 26 | } 27 | return _congratulationOrSorryLabel; 28 | } 29 | 30 | - (UILabel *)resultLabel{ 31 | if (_resultLabel == nil) { 32 | _resultLabel = [[UILabel alloc]init]; 33 | } 34 | return _resultLabel; 35 | } 36 | 37 | - (UILabel *)timeOrTipLabel{ 38 | if (_timeOrTipLabel == nil) { 39 | _timeOrTipLabel = [[UILabel alloc]init]; 40 | } 41 | return _timeOrTipLabel; 42 | } 43 | 44 | - (UIButton *)orderBtn{ 45 | if (_orderBtn == nil) { 46 | _orderBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 47 | } 48 | return _orderBtn; 49 | } 50 | 51 | - (UILabel *)phoneNumOrSubTipLabel{ 52 | if (_phoneNumOrSubTipLabel == nil) { 53 | _phoneNumOrSubTipLabel = [[UILabel alloc]init]; 54 | } 55 | return _phoneNumOrSubTipLabel; 56 | } 57 | -------------------------------------------------------------------------------- /YHLazyCode.app/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 16D32 7 | CFBundleDevelopmentRegion 8 | en 9 | CFBundleExecutable 10 | YHLazyCode 11 | CFBundleIdentifier 12 | com.YHLazyCode 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | YHLazyCode 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSupportedPlatforms 22 | 23 | MacOSX 24 | 25 | CFBundleVersion 26 | 1 27 | DTCompiler 28 | com.apple.compilers.llvm.clang.1_0 29 | DTPlatformBuild 30 | 8C1002 31 | DTPlatformVersion 32 | GM 33 | DTSDKBuild 34 | 16C58 35 | DTSDKName 36 | macosx10.12 37 | DTXcode 38 | 0821 39 | DTXcodeBuild 40 | 8C1002 41 | LSMinimumSystemVersion 42 | 10.10 43 | NSHumanReadableCopyright 44 | Copyright © 2017年 MasterFly. All rights reserved. 45 | NSMainStoryboardFile 46 | Main 47 | NSPrincipalClass 48 | NSApplication 49 | 50 | 51 | -------------------------------------------------------------------------------- /YHLazyCodeTool/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | YHLazyCodePlugin 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | XPC! 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSExtension 26 | 27 | NSExtensionAttributes 28 | 29 | XCSourceEditorCommandDefinitions 30 | 31 | 32 | XCSourceEditorCommandClassName 33 | SourceEditorCommand 34 | XCSourceEditorCommandIdentifier 35 | $(PRODUCT_BUNDLE_IDENTIFIER).SourceEditorCommand 36 | XCSourceEditorCommandName 37 | Source Editor Command 38 | 39 | 40 | XCSourceEditorExtensionPrincipalClass 41 | SourceEditorExtension 42 | 43 | NSExtensionPointIdentifier 44 | com.apple.dt.Xcode.extension.source-editor 45 | 46 | NSHumanReadableCopyright 47 | Copyright © 2017年 MasterFly. All rights reserved. 48 | 49 | 50 | -------------------------------------------------------------------------------- /YHLazyCode.app/Contents/PlugIns/YHLazyCodePlugin.appex/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 16D32 7 | CFBundleDevelopmentRegion 8 | en 9 | CFBundleDisplayName 10 | YHLazyCodePlugin 11 | CFBundleExecutable 12 | YHLazyCodePlugin 13 | CFBundleIdentifier 14 | com.YHLazyCode.YHLazyCodeTool 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | YHLazyCodePlugin 19 | CFBundlePackageType 20 | XPC! 21 | CFBundleShortVersionString 22 | 1.0 23 | CFBundleSupportedPlatforms 24 | 25 | MacOSX 26 | 27 | CFBundleVersion 28 | 1 29 | DTCompiler 30 | com.apple.compilers.llvm.clang.1_0 31 | DTPlatformBuild 32 | 8C1002 33 | DTPlatformVersion 34 | GM 35 | DTSDKBuild 36 | 16C58 37 | DTSDKName 38 | macosx10.12 39 | DTXcode 40 | 0821 41 | DTXcodeBuild 42 | 8C1002 43 | LSMinimumSystemVersion 44 | 10.10 45 | NSExtension 46 | 47 | NSExtensionAttributes 48 | 49 | XCSourceEditorCommandDefinitions 50 | 51 | 52 | XCSourceEditorCommandClassName 53 | SourceEditorCommand 54 | XCSourceEditorCommandIdentifier 55 | com.YHLazyCode.YHLazyCodeTool.SourceEditorCommand 56 | XCSourceEditorCommandName 57 | Source Editor Command 58 | 59 | 60 | XCSourceEditorExtensionPrincipalClass 61 | SourceEditorExtension 62 | 63 | NSExtensionPointIdentifier 64 | com.apple.dt.Xcode.extension.source-editor 65 | 66 | NSHumanReadableCopyright 67 | Copyright © 2017年 MasterFly. All rights reserved. 68 | 69 | 70 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ###目录 2 | * [**前言**](#前言) 3 | * [**准备工作**](#准备工作) 4 | * [**使用方法**](#使用方法) 5 | * [**shell脚本方式**](#shell脚本方式) 6 | * [**总结**](#总结) 7 | 8 | 9 | ###前言 10 | 相信很多人跟我一样,对懒加载又爱又恨!爱的是他的规范性,代码可读性;恨的是你至少要多花费10分钟的时间来不停的写 "get" 函数;我这急性子可受不了这样的事情。于是我忍不住了,自己写了个插件,[GitHub 地址](https://github.com/developeryh/YHLazyCode),就有了今天的这篇博客,分享给大家,希望能有所帮助。 11 | 12 | 13 | ###准备工作 14 | * 点击👆的GitHub 地址到仓库,把工程download 下来![屏幕快照 2017-06-16 下午3.26.50.png](http://upload-images.jianshu.io/upload_images/1891685-aef6ffadddd020d2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 15 | * 复制如下图中的**.app**文件到应用程序中。(因有小伙伴反应下载下来的工程直接运行会出错(因为需要修改bundle id),所以工程文件的根目录上我已经上传了个.app 文件,直接复制该文件即可,不需要麻烦的再运行工程)![屏幕快照 2017-06-20 下午4.40.27.png](http://upload-images.jianshu.io/upload_images/1891685-a21da8de2d6121e1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 16 | * 找到刚刚复制进去的app,双击即可 17 | ![屏幕快照 2017-06-16 下午3.33.46.png](http://upload-images.jianshu.io/upload_images/1891685-1b0b19608dc12e3e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 18 | * 确认 "系统偏好设置-->扩展"中对应的plugin 是否勾选!然后重启xcode 即可生效。![屏幕快照 2017-06-16 下午3.35.27.png](http://upload-images.jianshu.io/upload_images/1891685-4a79cc1784c0ceb8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 19 | 20 | 21 | ###使用方法 22 | * 首先需要在当前文件任意位置写上"#pragma mark - Get and Set" 这行代码,一般推荐写在文件end 的上面 23 | ![屏幕快照 2017-06-16 下午3.41.12.png](http://upload-images.jianshu.io/upload_images/1891685-8137244a7bb8626b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 24 | 25 | * 选中你想要的property,如下图 26 | ![屏幕快照 2017-06-16 下午3.40.39.png](http://upload-images.jianshu.io/upload_images/1891685-60f24743b171242f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 27 | * Editor 中找到刚安装的插件,点击确认 28 | ![屏幕快照 2017-06-16 下午3.41.00.png](http://upload-images.jianshu.io/upload_images/1891685-968be8db7838897e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 29 | * 会自动生成如下的懒加载代码![屏幕快照 2017-06-16 下午3.42.48.png](http://upload-images.jianshu.io/upload_images/1891685-cb2f3981b306841b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 30 | 31 | * 当然你可以在Xcode-->preferences-->key bindings 中搜索该插件找到并添加快捷键,当然要注意不要和Xcode本身的快捷键冲突了。![屏幕快照 2017-06-16 下午3.48.35.png](http://upload-images.jianshu.io/upload_images/1891685-4884238a4f205fc4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 32 | 33 | ###shell脚本方式 34 | 如果你觉得以上的插件方式前奏太多,不适合你的话,那么你可以试试脚本的方式。 35 | YHLazyCodeShell 文件夹中还有独立于插件的脚本,如里面例子所示,在property.txt 文件中粘贴你想要格式化的property。切换到run.sh的目录下,执行run.sh,即可在out.txt中得到想要的懒加载代码。(要记得给shell脚本运行的权限:chmod + x)。在这里就不贴图片了,个人感觉还是插件的方式比较顺哈! 36 | 37 | ###总结 38 | 目前是第一版,有bug,有建议的欢迎留言。喜欢的话顺手帮忙点个赞吧~ 39 | -------------------------------------------------------------------------------- /YHLazyCode.app/Contents/PlugIns/YHLazyCodePlugin.appex/Contents/_CodeSignature/CodeResources: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | files 6 | 7 | files2 8 | 9 | rules 10 | 11 | ^Resources/ 12 | 13 | ^Resources/.*\.lproj/ 14 | 15 | optional 16 | 17 | weight 18 | 1000 19 | 20 | ^Resources/.*\.lproj/locversion.plist$ 21 | 22 | omit 23 | 24 | weight 25 | 1100 26 | 27 | ^Resources/Base\.lproj/ 28 | 29 | weight 30 | 1010 31 | 32 | ^version.plist$ 33 | 34 | 35 | rules2 36 | 37 | .*\.dSYM($|/) 38 | 39 | weight 40 | 11 41 | 42 | ^(.*/)?\.DS_Store$ 43 | 44 | omit 45 | 46 | weight 47 | 2000 48 | 49 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ 50 | 51 | nested 52 | 53 | weight 54 | 10 55 | 56 | ^.* 57 | 58 | ^Info\.plist$ 59 | 60 | omit 61 | 62 | weight 63 | 20 64 | 65 | ^PkgInfo$ 66 | 67 | omit 68 | 69 | weight 70 | 20 71 | 72 | ^Resources/ 73 | 74 | weight 75 | 20 76 | 77 | ^Resources/.*\.lproj/ 78 | 79 | optional 80 | 81 | weight 82 | 1000 83 | 84 | ^Resources/.*\.lproj/locversion.plist$ 85 | 86 | omit 87 | 88 | weight 89 | 1100 90 | 91 | ^Resources/Base\.lproj/ 92 | 93 | weight 94 | 1010 95 | 96 | ^[^/]+$ 97 | 98 | nested 99 | 100 | weight 101 | 10 102 | 103 | ^embedded\.provisionprofile$ 104 | 105 | weight 106 | 20 107 | 108 | ^version\.plist$ 109 | 110 | weight 111 | 20 112 | 113 | 114 | 115 | 116 | -------------------------------------------------------------------------------- /YHLazyCodeTool/YHLazyCode.m: -------------------------------------------------------------------------------- 1 | // 2 | // YHLazyCode.m 3 | // YHLazyCode 4 | // 5 | // Created by MasterFly on 2017/6/9. 6 | // Copyright © 2017年 MasterFly. All rights reserved. 7 | // 8 | 9 | 10 | #import "YHLazyCode.h" 11 | #import "NSString+Add.h" 12 | 13 | #define BtnFormat @"- (%@ *)%@ {\n if (_%@ == nil) {\n _%@ = [%@ buttonWithType:<#(UIButtonType)#>];\n }\n return _%@;\n}" 14 | #define TableFormat @"- (%@ *)%@{\n if (_%@ == nil) {\n _%@ = [[%@ alloc] initWithFrame:<#(CGRect)#> style:<#(UITableViewStyle)#>];\n }\n return _%@;\n}" 15 | #define CollectionFormat @"- (%@ *)%@{\n if (_%@ == nil) {\n _%@ = [[%@ alloc] initWithFrame:<#(CGRect)#> collectionViewLayout:<#(nonnull UICollectionViewLayout *)#>];\n }\n return _%@;\n}" 16 | #define CommonFormat @"- (%@ *)%@{\n if (_%@ == nil) {\n _%@ = [[%@ alloc] init];\n }\n return _%@;\n}" 17 | @implementation YHLazyCode 18 | 19 | /** 20 | 添加懒加载的函数到对应的文件中 21 | 22 | @param invocation invocation 23 | */ 24 | + (void)addLazyCodeWithInvocation:(XCSourceEditorCommandInvocation *)invocation{ 25 | for (XCSourceTextRange *range in invocation.buffer.selections) { 26 | NSInteger startLine = range.start.line; 27 | NSInteger endLine = range.end.line; 28 | NSInteger lineCount = invocation.buffer.lines.count; 29 | 30 | 31 | NSMutableArray *nameMulDataArr = [NSMutableArray array]; 32 | for (NSInteger i = startLine; i <= endLine; i ++) { 33 | NSString *lineStr = invocation.buffer.lines[i]; 34 | 35 | if ([lineStr isEqualToString:@"\n"] || ![lineStr containsString:@";"]) { 36 | continue; 37 | } 38 | 39 | //去掉空格 40 | lineStr = [lineStr stringByReplacingOccurrencesOfString:@" " withString:@""]; 41 | 42 | //获取类名 43 | NSString *classNameStr = [lineStr stringBetweenLeftStr:@")" andRightStr:@"*"]; 44 | 45 | //获取属性名 46 | NSString *propertyName = [lineStr stringBetweenLeftStr:@"*" andRightStr:@";"]; 47 | 48 | 49 | //获取的数据存到字典中 50 | NSArray *formatArr = [self stringForClassName:classNameStr andPropertyName:propertyName]; 51 | [nameMulDataArr addObject:formatArr]; 52 | NSLog(@"%@",lineStr); 53 | } 54 | 55 | //输出到文件 56 | for (NSInteger i = 0 ; i < lineCount; i ++) { 57 | NSString *lineStr = invocation.buffer.lines[i]; 58 | if ([lineStr containsString:@"#pragma mark - Get and Set"]) { 59 | for (NSInteger j = i + 1 ; j < nameMulDataArr.count + i + 1 ; j ++) { 60 | NSArray *formatArr = [nameMulDataArr objectAtIndex:nameMulDataArr.count - j -1 + (i + 1 )]; 61 | for (int z = 0; z 2 | 6 | 9 | 10 | 16 | 22 | 23 | 24 | 30 | 36 | 37 | 38 | 39 | 40 | 45 | 46 | 47 | 48 | 54 | 55 | 56 | 57 | 58 | 59 | 70 | 74 | 75 | 76 | 82 | 83 | 84 | 85 | 86 | 87 | 94 | 96 | 102 | 103 | 104 | 105 | 107 | 108 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /YHLazyCode.xcodeproj/xcuserdata/masterfly.xcuserdatad/xcschemes/YHLazyCode.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 43 | 49 | 50 | 51 | 52 | 53 | 59 | 60 | 61 | 62 | 63 | 64 | 74 | 76 | 82 | 83 | 84 | 85 | 86 | 87 | 93 | 95 | 101 | 102 | 103 | 104 | 106 | 107 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /YHLazyCode.app/Contents/_CodeSignature/CodeResources: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | files 6 | 7 | Resources/Base.lproj/Main.storyboardc/Info.plist 8 | 9 | rxxhAOmLiVn/0314aLN767p/1M8= 10 | 11 | Resources/Base.lproj/Main.storyboardc/MainMenu.nib 12 | 13 | v+31TVlXTu/xWrR86TllkwW7EL8= 14 | 15 | Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib 16 | 17 | ZZwU9AV1mVfcfWdakx/KFY7iL9M= 18 | 19 | Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib 20 | 21 | LYQKiXkcwiiUnhsqtS/NFWuq1Ys= 22 | 23 | 24 | files2 25 | 26 | PlugIns/YHLazyCodePlugin.appex 27 | 28 | cdhash 29 | 30 | sA7SaCqernr30JVNi9P7jp5MTQY= 31 | 32 | requirement 33 | identifier "com.YHLazyCode.YHLazyCodeTool" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: youhui youhui (U8UUF2RND4)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */ 34 | 35 | Resources/Base.lproj/Main.storyboardc/Info.plist 36 | 37 | hash 38 | 39 | rxxhAOmLiVn/0314aLN767p/1M8= 40 | 41 | hash2 42 | 43 | u+6iMtCbGJOg5Iok1T4qkrTSFJrQDb8dNqSyWkL8Xbw= 44 | 45 | 46 | Resources/Base.lproj/Main.storyboardc/MainMenu.nib 47 | 48 | hash 49 | 50 | v+31TVlXTu/xWrR86TllkwW7EL8= 51 | 52 | hash2 53 | 54 | MsYKAoEshcxPjZAoLdIrdPC6/C+yHeV5iPOk1PnchDQ= 55 | 56 | 57 | Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib 58 | 59 | hash 60 | 61 | ZZwU9AV1mVfcfWdakx/KFY7iL9M= 62 | 63 | hash2 64 | 65 | rQ3TLA1a8hIZ8GBMKsTgfq+OfZPKYWh9n6knrJw5CsQ= 66 | 67 | 68 | Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib 69 | 70 | hash 71 | 72 | LYQKiXkcwiiUnhsqtS/NFWuq1Ys= 73 | 74 | hash2 75 | 76 | vNP1WoTVXUD+Z1KTWH3w4lsKd/WCv9kUxYHWFqPdH6E= 77 | 78 | 79 | 80 | rules 81 | 82 | ^Resources/ 83 | 84 | ^Resources/.*\.lproj/ 85 | 86 | optional 87 | 88 | weight 89 | 1000 90 | 91 | ^Resources/.*\.lproj/locversion.plist$ 92 | 93 | omit 94 | 95 | weight 96 | 1100 97 | 98 | ^Resources/Base\.lproj/ 99 | 100 | weight 101 | 1010 102 | 103 | ^version.plist$ 104 | 105 | 106 | rules2 107 | 108 | .*\.dSYM($|/) 109 | 110 | weight 111 | 11 112 | 113 | ^(.*/)?\.DS_Store$ 114 | 115 | omit 116 | 117 | weight 118 | 2000 119 | 120 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ 121 | 122 | nested 123 | 124 | weight 125 | 10 126 | 127 | ^.* 128 | 129 | ^Info\.plist$ 130 | 131 | omit 132 | 133 | weight 134 | 20 135 | 136 | ^PkgInfo$ 137 | 138 | omit 139 | 140 | weight 141 | 20 142 | 143 | ^Resources/ 144 | 145 | weight 146 | 20 147 | 148 | ^Resources/.*\.lproj/ 149 | 150 | optional 151 | 152 | weight 153 | 1000 154 | 155 | ^Resources/.*\.lproj/locversion.plist$ 156 | 157 | omit 158 | 159 | weight 160 | 1100 161 | 162 | ^Resources/Base\.lproj/ 163 | 164 | weight 165 | 1010 166 | 167 | ^[^/]+$ 168 | 169 | nested 170 | 171 | weight 172 | 10 173 | 174 | ^embedded\.provisionprofile$ 175 | 176 | weight 177 | 20 178 | 179 | ^version\.plist$ 180 | 181 | weight 182 | 20 183 | 184 | 185 | 186 | 187 | -------------------------------------------------------------------------------- /YHLazyCode.xcodeproj/xcuserdata/masterfly.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 20 | 21 | 22 | 24 | 36 | 37 | 38 | 40 | 52 | 53 | 54 | 56 | 68 | 69 | 70 | 72 | 84 | 85 | 99 | 100 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | -------------------------------------------------------------------------------- /YHLazyCode.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | AE4F42EA1EEA91730026430A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = AE4F42E91EEA91730026430A /* AppDelegate.m */; }; 11 | AE4F42ED1EEA91730026430A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AE4F42EC1EEA91730026430A /* main.m */; }; 12 | AE4F42F01EEA91730026430A /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AE4F42EF1EEA91730026430A /* ViewController.m */; }; 13 | AE4F42F21EEA91730026430A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AE4F42F11EEA91730026430A /* Assets.xcassets */; }; 14 | AE4F42F51EEA91730026430A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AE4F42F31EEA91730026430A /* Main.storyboard */; }; 15 | AE4F43001EEA91730026430A /* YHLazyCodeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = AE4F42FF1EEA91730026430A /* YHLazyCodeTests.m */; }; 16 | AE4F430B1EEA91730026430A /* YHLazyCodeUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = AE4F430A1EEA91730026430A /* YHLazyCodeUITests.m */; }; 17 | AE4F431F1EEA91D30026430A /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AE4F431E1EEA91D30026430A /* Cocoa.framework */; }; 18 | AE4F43251EEA91D30026430A /* SourceEditorExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = AE4F43241EEA91D30026430A /* SourceEditorExtension.m */; }; 19 | AE4F43281EEA91D30026430A /* SourceEditorCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = AE4F43271EEA91D30026430A /* SourceEditorCommand.m */; }; 20 | AE4F432C1EEA91D30026430A /* YHLazyCodePlugin.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = AE4F431C1EEA91D30026430A /* YHLazyCodePlugin.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 21 | AE4F43331EEA977B0026430A /* YHLazyCode.m in Sources */ = {isa = PBXBuildFile; fileRef = AE4F43321EEA977B0026430A /* YHLazyCode.m */; }; 22 | AE4F43361EEA9FBE0026430A /* NSString+Add.m in Sources */ = {isa = PBXBuildFile; fileRef = AE4F43351EEA9FBE0026430A /* NSString+Add.m */; }; 23 | /* End PBXBuildFile section */ 24 | 25 | /* Begin PBXContainerItemProxy section */ 26 | AE4F42FC1EEA91730026430A /* PBXContainerItemProxy */ = { 27 | isa = PBXContainerItemProxy; 28 | containerPortal = AE4F42DD1EEA91730026430A /* Project object */; 29 | proxyType = 1; 30 | remoteGlobalIDString = AE4F42E41EEA91730026430A; 31 | remoteInfo = YHLazyCode; 32 | }; 33 | AE4F43071EEA91730026430A /* PBXContainerItemProxy */ = { 34 | isa = PBXContainerItemProxy; 35 | containerPortal = AE4F42DD1EEA91730026430A /* Project object */; 36 | proxyType = 1; 37 | remoteGlobalIDString = AE4F42E41EEA91730026430A; 38 | remoteInfo = YHLazyCode; 39 | }; 40 | AE4F432A1EEA91D30026430A /* PBXContainerItemProxy */ = { 41 | isa = PBXContainerItemProxy; 42 | containerPortal = AE4F42DD1EEA91730026430A /* Project object */; 43 | proxyType = 1; 44 | remoteGlobalIDString = AE4F431B1EEA91D30026430A; 45 | remoteInfo = YHLazyCodeTool; 46 | }; 47 | /* End PBXContainerItemProxy section */ 48 | 49 | /* Begin PBXCopyFilesBuildPhase section */ 50 | AE4F43301EEA91D30026430A /* Embed App Extensions */ = { 51 | isa = PBXCopyFilesBuildPhase; 52 | buildActionMask = 2147483647; 53 | dstPath = ""; 54 | dstSubfolderSpec = 13; 55 | files = ( 56 | AE4F432C1EEA91D30026430A /* YHLazyCodePlugin.appex in Embed App Extensions */, 57 | ); 58 | name = "Embed App Extensions"; 59 | runOnlyForDeploymentPostprocessing = 0; 60 | }; 61 | /* End PBXCopyFilesBuildPhase section */ 62 | 63 | /* Begin PBXFileReference section */ 64 | AE4F42E51EEA91730026430A /* YHLazyCode.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = YHLazyCode.app; sourceTree = BUILT_PRODUCTS_DIR; }; 65 | AE4F42E81EEA91730026430A /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 66 | AE4F42E91EEA91730026430A /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 67 | AE4F42EC1EEA91730026430A /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 68 | AE4F42EE1EEA91730026430A /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; 69 | AE4F42EF1EEA91730026430A /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; 70 | AE4F42F11EEA91730026430A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 71 | AE4F42F41EEA91730026430A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 72 | AE4F42F61EEA91730026430A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 73 | AE4F42FB1EEA91730026430A /* YHLazyCodeTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = YHLazyCodeTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 74 | AE4F42FF1EEA91730026430A /* YHLazyCodeTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YHLazyCodeTests.m; sourceTree = ""; }; 75 | AE4F43011EEA91730026430A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 76 | AE4F43061EEA91730026430A /* YHLazyCodeUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = YHLazyCodeUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 77 | AE4F430A1EEA91730026430A /* YHLazyCodeUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YHLazyCodeUITests.m; sourceTree = ""; }; 78 | AE4F430C1EEA91730026430A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 79 | AE4F431C1EEA91D30026430A /* YHLazyCodePlugin.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = YHLazyCodePlugin.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 80 | AE4F431E1EEA91D30026430A /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 81 | AE4F43221EEA91D30026430A /* YHLazyCodeTool.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = YHLazyCodeTool.entitlements; sourceTree = ""; }; 82 | AE4F43231EEA91D30026430A /* SourceEditorExtension.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SourceEditorExtension.h; sourceTree = ""; }; 83 | AE4F43241EEA91D30026430A /* SourceEditorExtension.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SourceEditorExtension.m; sourceTree = ""; }; 84 | AE4F43261EEA91D30026430A /* SourceEditorCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SourceEditorCommand.h; sourceTree = ""; }; 85 | AE4F43271EEA91D30026430A /* SourceEditorCommand.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SourceEditorCommand.m; sourceTree = ""; }; 86 | AE4F43291EEA91D30026430A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 87 | AE4F43311EEA977B0026430A /* YHLazyCode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YHLazyCode.h; sourceTree = ""; }; 88 | AE4F43321EEA977B0026430A /* YHLazyCode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YHLazyCode.m; sourceTree = ""; }; 89 | AE4F43341EEA9FBE0026430A /* NSString+Add.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Add.h"; sourceTree = ""; }; 90 | AE4F43351EEA9FBE0026430A /* NSString+Add.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Add.m"; sourceTree = ""; }; 91 | /* End PBXFileReference section */ 92 | 93 | /* Begin PBXFrameworksBuildPhase section */ 94 | AE4F42E21EEA91730026430A /* Frameworks */ = { 95 | isa = PBXFrameworksBuildPhase; 96 | buildActionMask = 2147483647; 97 | files = ( 98 | ); 99 | runOnlyForDeploymentPostprocessing = 0; 100 | }; 101 | AE4F42F81EEA91730026430A /* Frameworks */ = { 102 | isa = PBXFrameworksBuildPhase; 103 | buildActionMask = 2147483647; 104 | files = ( 105 | ); 106 | runOnlyForDeploymentPostprocessing = 0; 107 | }; 108 | AE4F43031EEA91730026430A /* Frameworks */ = { 109 | isa = PBXFrameworksBuildPhase; 110 | buildActionMask = 2147483647; 111 | files = ( 112 | ); 113 | runOnlyForDeploymentPostprocessing = 0; 114 | }; 115 | AE4F43191EEA91D30026430A /* Frameworks */ = { 116 | isa = PBXFrameworksBuildPhase; 117 | buildActionMask = 2147483647; 118 | files = ( 119 | AE4F431F1EEA91D30026430A /* Cocoa.framework in Frameworks */, 120 | ); 121 | runOnlyForDeploymentPostprocessing = 0; 122 | }; 123 | /* End PBXFrameworksBuildPhase section */ 124 | 125 | /* Begin PBXGroup section */ 126 | AE4F42DC1EEA91730026430A = { 127 | isa = PBXGroup; 128 | children = ( 129 | AE4F42E71EEA91730026430A /* YHLazyCode */, 130 | AE4F42FE1EEA91730026430A /* YHLazyCodeTests */, 131 | AE4F43091EEA91730026430A /* YHLazyCodeUITests */, 132 | AE4F43201EEA91D30026430A /* YHLazyCodeTool */, 133 | AE4F431D1EEA91D30026430A /* Frameworks */, 134 | AE4F42E61EEA91730026430A /* Products */, 135 | ); 136 | sourceTree = ""; 137 | }; 138 | AE4F42E61EEA91730026430A /* Products */ = { 139 | isa = PBXGroup; 140 | children = ( 141 | AE4F42E51EEA91730026430A /* YHLazyCode.app */, 142 | AE4F42FB1EEA91730026430A /* YHLazyCodeTests.xctest */, 143 | AE4F43061EEA91730026430A /* YHLazyCodeUITests.xctest */, 144 | AE4F431C1EEA91D30026430A /* YHLazyCodePlugin.appex */, 145 | ); 146 | name = Products; 147 | sourceTree = ""; 148 | }; 149 | AE4F42E71EEA91730026430A /* YHLazyCode */ = { 150 | isa = PBXGroup; 151 | children = ( 152 | AE4F42E81EEA91730026430A /* AppDelegate.h */, 153 | AE4F42E91EEA91730026430A /* AppDelegate.m */, 154 | AE4F42EE1EEA91730026430A /* ViewController.h */, 155 | AE4F42EF1EEA91730026430A /* ViewController.m */, 156 | AE4F42F11EEA91730026430A /* Assets.xcassets */, 157 | AE4F42F31EEA91730026430A /* Main.storyboard */, 158 | AE4F42F61EEA91730026430A /* Info.plist */, 159 | AE4F42EB1EEA91730026430A /* Supporting Files */, 160 | ); 161 | path = YHLazyCode; 162 | sourceTree = ""; 163 | }; 164 | AE4F42EB1EEA91730026430A /* Supporting Files */ = { 165 | isa = PBXGroup; 166 | children = ( 167 | AE4F42EC1EEA91730026430A /* main.m */, 168 | ); 169 | name = "Supporting Files"; 170 | sourceTree = ""; 171 | }; 172 | AE4F42FE1EEA91730026430A /* YHLazyCodeTests */ = { 173 | isa = PBXGroup; 174 | children = ( 175 | AE4F42FF1EEA91730026430A /* YHLazyCodeTests.m */, 176 | AE4F43011EEA91730026430A /* Info.plist */, 177 | ); 178 | path = YHLazyCodeTests; 179 | sourceTree = ""; 180 | }; 181 | AE4F43091EEA91730026430A /* YHLazyCodeUITests */ = { 182 | isa = PBXGroup; 183 | children = ( 184 | AE4F430A1EEA91730026430A /* YHLazyCodeUITests.m */, 185 | AE4F430C1EEA91730026430A /* Info.plist */, 186 | ); 187 | path = YHLazyCodeUITests; 188 | sourceTree = ""; 189 | }; 190 | AE4F431D1EEA91D30026430A /* Frameworks */ = { 191 | isa = PBXGroup; 192 | children = ( 193 | AE4F431E1EEA91D30026430A /* Cocoa.framework */, 194 | ); 195 | name = Frameworks; 196 | sourceTree = ""; 197 | }; 198 | AE4F43201EEA91D30026430A /* YHLazyCodeTool */ = { 199 | isa = PBXGroup; 200 | children = ( 201 | AE4F43341EEA9FBE0026430A /* NSString+Add.h */, 202 | AE4F43351EEA9FBE0026430A /* NSString+Add.m */, 203 | AE4F43311EEA977B0026430A /* YHLazyCode.h */, 204 | AE4F43321EEA977B0026430A /* YHLazyCode.m */, 205 | AE4F43231EEA91D30026430A /* SourceEditorExtension.h */, 206 | AE4F43241EEA91D30026430A /* SourceEditorExtension.m */, 207 | AE4F43261EEA91D30026430A /* SourceEditorCommand.h */, 208 | AE4F43271EEA91D30026430A /* SourceEditorCommand.m */, 209 | AE4F43291EEA91D30026430A /* Info.plist */, 210 | AE4F43211EEA91D30026430A /* Supporting Files */, 211 | ); 212 | path = YHLazyCodeTool; 213 | sourceTree = ""; 214 | }; 215 | AE4F43211EEA91D30026430A /* Supporting Files */ = { 216 | isa = PBXGroup; 217 | children = ( 218 | AE4F43221EEA91D30026430A /* YHLazyCodeTool.entitlements */, 219 | ); 220 | name = "Supporting Files"; 221 | sourceTree = ""; 222 | }; 223 | /* End PBXGroup section */ 224 | 225 | /* Begin PBXNativeTarget section */ 226 | AE4F42E41EEA91730026430A /* YHLazyCode */ = { 227 | isa = PBXNativeTarget; 228 | buildConfigurationList = AE4F430F1EEA91730026430A /* Build configuration list for PBXNativeTarget "YHLazyCode" */; 229 | buildPhases = ( 230 | AE4F42E11EEA91730026430A /* Sources */, 231 | AE4F42E21EEA91730026430A /* Frameworks */, 232 | AE4F42E31EEA91730026430A /* Resources */, 233 | AE4F43301EEA91D30026430A /* Embed App Extensions */, 234 | ); 235 | buildRules = ( 236 | ); 237 | dependencies = ( 238 | AE4F432B1EEA91D30026430A /* PBXTargetDependency */, 239 | ); 240 | name = YHLazyCode; 241 | productName = YHLazyCode; 242 | productReference = AE4F42E51EEA91730026430A /* YHLazyCode.app */; 243 | productType = "com.apple.product-type.application"; 244 | }; 245 | AE4F42FA1EEA91730026430A /* YHLazyCodeTests */ = { 246 | isa = PBXNativeTarget; 247 | buildConfigurationList = AE4F43121EEA91730026430A /* Build configuration list for PBXNativeTarget "YHLazyCodeTests" */; 248 | buildPhases = ( 249 | AE4F42F71EEA91730026430A /* Sources */, 250 | AE4F42F81EEA91730026430A /* Frameworks */, 251 | AE4F42F91EEA91730026430A /* Resources */, 252 | ); 253 | buildRules = ( 254 | ); 255 | dependencies = ( 256 | AE4F42FD1EEA91730026430A /* PBXTargetDependency */, 257 | ); 258 | name = YHLazyCodeTests; 259 | productName = YHLazyCodeTests; 260 | productReference = AE4F42FB1EEA91730026430A /* YHLazyCodeTests.xctest */; 261 | productType = "com.apple.product-type.bundle.unit-test"; 262 | }; 263 | AE4F43051EEA91730026430A /* YHLazyCodeUITests */ = { 264 | isa = PBXNativeTarget; 265 | buildConfigurationList = AE4F43151EEA91730026430A /* Build configuration list for PBXNativeTarget "YHLazyCodeUITests" */; 266 | buildPhases = ( 267 | AE4F43021EEA91730026430A /* Sources */, 268 | AE4F43031EEA91730026430A /* Frameworks */, 269 | AE4F43041EEA91730026430A /* Resources */, 270 | ); 271 | buildRules = ( 272 | ); 273 | dependencies = ( 274 | AE4F43081EEA91730026430A /* PBXTargetDependency */, 275 | ); 276 | name = YHLazyCodeUITests; 277 | productName = YHLazyCodeUITests; 278 | productReference = AE4F43061EEA91730026430A /* YHLazyCodeUITests.xctest */; 279 | productType = "com.apple.product-type.bundle.ui-testing"; 280 | }; 281 | AE4F431B1EEA91D30026430A /* YHLazyCodePlugin */ = { 282 | isa = PBXNativeTarget; 283 | buildConfigurationList = AE4F432D1EEA91D30026430A /* Build configuration list for PBXNativeTarget "YHLazyCodePlugin" */; 284 | buildPhases = ( 285 | AE4F43181EEA91D30026430A /* Sources */, 286 | AE4F43191EEA91D30026430A /* Frameworks */, 287 | AE4F431A1EEA91D30026430A /* Resources */, 288 | ); 289 | buildRules = ( 290 | ); 291 | dependencies = ( 292 | ); 293 | name = YHLazyCodePlugin; 294 | productName = YHLazyCodeTool; 295 | productReference = AE4F431C1EEA91D30026430A /* YHLazyCodePlugin.appex */; 296 | productType = "com.apple.product-type.xcode-extension"; 297 | }; 298 | /* End PBXNativeTarget section */ 299 | 300 | /* Begin PBXProject section */ 301 | AE4F42DD1EEA91730026430A /* Project object */ = { 302 | isa = PBXProject; 303 | attributes = { 304 | LastUpgradeCheck = 0820; 305 | ORGANIZATIONNAME = MasterFly; 306 | TargetAttributes = { 307 | AE4F42E41EEA91730026430A = { 308 | CreatedOnToolsVersion = 8.2.1; 309 | DevelopmentTeam = 3E4LSSERGY; 310 | ProvisioningStyle = Automatic; 311 | }; 312 | AE4F42FA1EEA91730026430A = { 313 | CreatedOnToolsVersion = 8.2.1; 314 | DevelopmentTeam = 3E4LSSERGY; 315 | ProvisioningStyle = Automatic; 316 | TestTargetID = AE4F42E41EEA91730026430A; 317 | }; 318 | AE4F43051EEA91730026430A = { 319 | CreatedOnToolsVersion = 8.2.1; 320 | DevelopmentTeam = 3E4LSSERGY; 321 | ProvisioningStyle = Automatic; 322 | TestTargetID = AE4F42E41EEA91730026430A; 323 | }; 324 | AE4F431B1EEA91D30026430A = { 325 | CreatedOnToolsVersion = 8.2.1; 326 | DevelopmentTeam = 3E4LSSERGY; 327 | ProvisioningStyle = Automatic; 328 | }; 329 | }; 330 | }; 331 | buildConfigurationList = AE4F42E01EEA91730026430A /* Build configuration list for PBXProject "YHLazyCode" */; 332 | compatibilityVersion = "Xcode 3.2"; 333 | developmentRegion = English; 334 | hasScannedForEncodings = 0; 335 | knownRegions = ( 336 | en, 337 | Base, 338 | ); 339 | mainGroup = AE4F42DC1EEA91730026430A; 340 | productRefGroup = AE4F42E61EEA91730026430A /* Products */; 341 | projectDirPath = ""; 342 | projectRoot = ""; 343 | targets = ( 344 | AE4F42E41EEA91730026430A /* YHLazyCode */, 345 | AE4F42FA1EEA91730026430A /* YHLazyCodeTests */, 346 | AE4F43051EEA91730026430A /* YHLazyCodeUITests */, 347 | AE4F431B1EEA91D30026430A /* YHLazyCodePlugin */, 348 | ); 349 | }; 350 | /* End PBXProject section */ 351 | 352 | /* Begin PBXResourcesBuildPhase section */ 353 | AE4F42E31EEA91730026430A /* Resources */ = { 354 | isa = PBXResourcesBuildPhase; 355 | buildActionMask = 2147483647; 356 | files = ( 357 | AE4F42F21EEA91730026430A /* Assets.xcassets in Resources */, 358 | AE4F42F51EEA91730026430A /* Main.storyboard in Resources */, 359 | ); 360 | runOnlyForDeploymentPostprocessing = 0; 361 | }; 362 | AE4F42F91EEA91730026430A /* Resources */ = { 363 | isa = PBXResourcesBuildPhase; 364 | buildActionMask = 2147483647; 365 | files = ( 366 | ); 367 | runOnlyForDeploymentPostprocessing = 0; 368 | }; 369 | AE4F43041EEA91730026430A /* Resources */ = { 370 | isa = PBXResourcesBuildPhase; 371 | buildActionMask = 2147483647; 372 | files = ( 373 | ); 374 | runOnlyForDeploymentPostprocessing = 0; 375 | }; 376 | AE4F431A1EEA91D30026430A /* Resources */ = { 377 | isa = PBXResourcesBuildPhase; 378 | buildActionMask = 2147483647; 379 | files = ( 380 | ); 381 | runOnlyForDeploymentPostprocessing = 0; 382 | }; 383 | /* End PBXResourcesBuildPhase section */ 384 | 385 | /* Begin PBXSourcesBuildPhase section */ 386 | AE4F42E11EEA91730026430A /* Sources */ = { 387 | isa = PBXSourcesBuildPhase; 388 | buildActionMask = 2147483647; 389 | files = ( 390 | AE4F42F01EEA91730026430A /* ViewController.m in Sources */, 391 | AE4F42ED1EEA91730026430A /* main.m in Sources */, 392 | AE4F42EA1EEA91730026430A /* AppDelegate.m in Sources */, 393 | ); 394 | runOnlyForDeploymentPostprocessing = 0; 395 | }; 396 | AE4F42F71EEA91730026430A /* Sources */ = { 397 | isa = PBXSourcesBuildPhase; 398 | buildActionMask = 2147483647; 399 | files = ( 400 | AE4F43001EEA91730026430A /* YHLazyCodeTests.m in Sources */, 401 | ); 402 | runOnlyForDeploymentPostprocessing = 0; 403 | }; 404 | AE4F43021EEA91730026430A /* Sources */ = { 405 | isa = PBXSourcesBuildPhase; 406 | buildActionMask = 2147483647; 407 | files = ( 408 | AE4F430B1EEA91730026430A /* YHLazyCodeUITests.m in Sources */, 409 | ); 410 | runOnlyForDeploymentPostprocessing = 0; 411 | }; 412 | AE4F43181EEA91D30026430A /* Sources */ = { 413 | isa = PBXSourcesBuildPhase; 414 | buildActionMask = 2147483647; 415 | files = ( 416 | AE4F43251EEA91D30026430A /* SourceEditorExtension.m in Sources */, 417 | AE4F43361EEA9FBE0026430A /* NSString+Add.m in Sources */, 418 | AE4F43331EEA977B0026430A /* YHLazyCode.m in Sources */, 419 | AE4F43281EEA91D30026430A /* SourceEditorCommand.m in Sources */, 420 | ); 421 | runOnlyForDeploymentPostprocessing = 0; 422 | }; 423 | /* End PBXSourcesBuildPhase section */ 424 | 425 | /* Begin PBXTargetDependency section */ 426 | AE4F42FD1EEA91730026430A /* PBXTargetDependency */ = { 427 | isa = PBXTargetDependency; 428 | target = AE4F42E41EEA91730026430A /* YHLazyCode */; 429 | targetProxy = AE4F42FC1EEA91730026430A /* PBXContainerItemProxy */; 430 | }; 431 | AE4F43081EEA91730026430A /* PBXTargetDependency */ = { 432 | isa = PBXTargetDependency; 433 | target = AE4F42E41EEA91730026430A /* YHLazyCode */; 434 | targetProxy = AE4F43071EEA91730026430A /* PBXContainerItemProxy */; 435 | }; 436 | AE4F432B1EEA91D30026430A /* PBXTargetDependency */ = { 437 | isa = PBXTargetDependency; 438 | target = AE4F431B1EEA91D30026430A /* YHLazyCodePlugin */; 439 | targetProxy = AE4F432A1EEA91D30026430A /* PBXContainerItemProxy */; 440 | }; 441 | /* End PBXTargetDependency section */ 442 | 443 | /* Begin PBXVariantGroup section */ 444 | AE4F42F31EEA91730026430A /* Main.storyboard */ = { 445 | isa = PBXVariantGroup; 446 | children = ( 447 | AE4F42F41EEA91730026430A /* Base */, 448 | ); 449 | name = Main.storyboard; 450 | sourceTree = ""; 451 | }; 452 | /* End PBXVariantGroup section */ 453 | 454 | /* Begin XCBuildConfiguration section */ 455 | AE4F430D1EEA91730026430A /* Debug */ = { 456 | isa = XCBuildConfiguration; 457 | buildSettings = { 458 | ALWAYS_SEARCH_USER_PATHS = NO; 459 | CLANG_ANALYZER_NONNULL = YES; 460 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 461 | CLANG_CXX_LIBRARY = "libc++"; 462 | CLANG_ENABLE_MODULES = YES; 463 | CLANG_ENABLE_OBJC_ARC = YES; 464 | CLANG_WARN_BOOL_CONVERSION = YES; 465 | CLANG_WARN_CONSTANT_CONVERSION = YES; 466 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 467 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 468 | CLANG_WARN_EMPTY_BODY = YES; 469 | CLANG_WARN_ENUM_CONVERSION = YES; 470 | CLANG_WARN_INFINITE_RECURSION = YES; 471 | CLANG_WARN_INT_CONVERSION = YES; 472 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 473 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 474 | CLANG_WARN_UNREACHABLE_CODE = YES; 475 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 476 | CODE_SIGN_IDENTITY = "-"; 477 | COPY_PHASE_STRIP = NO; 478 | DEBUG_INFORMATION_FORMAT = dwarf; 479 | ENABLE_STRICT_OBJC_MSGSEND = YES; 480 | ENABLE_TESTABILITY = YES; 481 | GCC_C_LANGUAGE_STANDARD = gnu99; 482 | GCC_DYNAMIC_NO_PIC = NO; 483 | GCC_NO_COMMON_BLOCKS = YES; 484 | GCC_OPTIMIZATION_LEVEL = 0; 485 | GCC_PREPROCESSOR_DEFINITIONS = ( 486 | "DEBUG=1", 487 | "$(inherited)", 488 | ); 489 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 490 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 491 | GCC_WARN_UNDECLARED_SELECTOR = YES; 492 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 493 | GCC_WARN_UNUSED_FUNCTION = YES; 494 | GCC_WARN_UNUSED_VARIABLE = YES; 495 | MACOSX_DEPLOYMENT_TARGET = 10.12; 496 | MTL_ENABLE_DEBUG_INFO = YES; 497 | ONLY_ACTIVE_ARCH = YES; 498 | SDKROOT = macosx; 499 | }; 500 | name = Debug; 501 | }; 502 | AE4F430E1EEA91730026430A /* Release */ = { 503 | isa = XCBuildConfiguration; 504 | buildSettings = { 505 | ALWAYS_SEARCH_USER_PATHS = NO; 506 | CLANG_ANALYZER_NONNULL = YES; 507 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 508 | CLANG_CXX_LIBRARY = "libc++"; 509 | CLANG_ENABLE_MODULES = YES; 510 | CLANG_ENABLE_OBJC_ARC = YES; 511 | CLANG_WARN_BOOL_CONVERSION = YES; 512 | CLANG_WARN_CONSTANT_CONVERSION = YES; 513 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 514 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 515 | CLANG_WARN_EMPTY_BODY = YES; 516 | CLANG_WARN_ENUM_CONVERSION = YES; 517 | CLANG_WARN_INFINITE_RECURSION = YES; 518 | CLANG_WARN_INT_CONVERSION = YES; 519 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 520 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 521 | CLANG_WARN_UNREACHABLE_CODE = YES; 522 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 523 | CODE_SIGN_IDENTITY = "-"; 524 | COPY_PHASE_STRIP = NO; 525 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 526 | ENABLE_NS_ASSERTIONS = NO; 527 | ENABLE_STRICT_OBJC_MSGSEND = YES; 528 | GCC_C_LANGUAGE_STANDARD = gnu99; 529 | GCC_NO_COMMON_BLOCKS = YES; 530 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 531 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 532 | GCC_WARN_UNDECLARED_SELECTOR = YES; 533 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 534 | GCC_WARN_UNUSED_FUNCTION = YES; 535 | GCC_WARN_UNUSED_VARIABLE = YES; 536 | MACOSX_DEPLOYMENT_TARGET = 10.12; 537 | MTL_ENABLE_DEBUG_INFO = NO; 538 | SDKROOT = macosx; 539 | }; 540 | name = Release; 541 | }; 542 | AE4F43101EEA91730026430A /* Debug */ = { 543 | isa = XCBuildConfiguration; 544 | buildSettings = { 545 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 546 | CODE_SIGN_IDENTITY = "Mac Developer"; 547 | COMBINE_HIDPI_IMAGES = YES; 548 | DEVELOPMENT_TEAM = 3E4LSSERGY; 549 | INFOPLIST_FILE = YHLazyCode/Info.plist; 550 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; 551 | MACOSX_DEPLOYMENT_TARGET = 10.10; 552 | PRODUCT_BUNDLE_IDENTIFIER = com.YHLazyCode; 553 | PRODUCT_NAME = "$(TARGET_NAME)"; 554 | }; 555 | name = Debug; 556 | }; 557 | AE4F43111EEA91730026430A /* Release */ = { 558 | isa = XCBuildConfiguration; 559 | buildSettings = { 560 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 561 | CODE_SIGN_IDENTITY = "Mac Developer"; 562 | COMBINE_HIDPI_IMAGES = YES; 563 | DEVELOPMENT_TEAM = 3E4LSSERGY; 564 | INFOPLIST_FILE = YHLazyCode/Info.plist; 565 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; 566 | MACOSX_DEPLOYMENT_TARGET = 10.10; 567 | PRODUCT_BUNDLE_IDENTIFIER = com.YHLazyCode; 568 | PRODUCT_NAME = "$(TARGET_NAME)"; 569 | }; 570 | name = Release; 571 | }; 572 | AE4F43131EEA91730026430A /* Debug */ = { 573 | isa = XCBuildConfiguration; 574 | buildSettings = { 575 | BUNDLE_LOADER = "$(TEST_HOST)"; 576 | COMBINE_HIDPI_IMAGES = YES; 577 | DEVELOPMENT_TEAM = 3E4LSSERGY; 578 | INFOPLIST_FILE = YHLazyCodeTests/Info.plist; 579 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; 580 | PRODUCT_BUNDLE_IDENTIFIER = MasterFly.YHLazyCodeTests; 581 | PRODUCT_NAME = "$(TARGET_NAME)"; 582 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/YHLazyCode.app/Contents/MacOS/YHLazyCode"; 583 | }; 584 | name = Debug; 585 | }; 586 | AE4F43141EEA91730026430A /* Release */ = { 587 | isa = XCBuildConfiguration; 588 | buildSettings = { 589 | BUNDLE_LOADER = "$(TEST_HOST)"; 590 | COMBINE_HIDPI_IMAGES = YES; 591 | DEVELOPMENT_TEAM = 3E4LSSERGY; 592 | INFOPLIST_FILE = YHLazyCodeTests/Info.plist; 593 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; 594 | PRODUCT_BUNDLE_IDENTIFIER = MasterFly.YHLazyCodeTests; 595 | PRODUCT_NAME = "$(TARGET_NAME)"; 596 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/YHLazyCode.app/Contents/MacOS/YHLazyCode"; 597 | }; 598 | name = Release; 599 | }; 600 | AE4F43161EEA91730026430A /* Debug */ = { 601 | isa = XCBuildConfiguration; 602 | buildSettings = { 603 | COMBINE_HIDPI_IMAGES = YES; 604 | DEVELOPMENT_TEAM = 3E4LSSERGY; 605 | INFOPLIST_FILE = YHLazyCodeUITests/Info.plist; 606 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; 607 | PRODUCT_BUNDLE_IDENTIFIER = MasterFly.YHLazyCodeUITests; 608 | PRODUCT_NAME = "$(TARGET_NAME)"; 609 | TEST_TARGET_NAME = YHLazyCode; 610 | }; 611 | name = Debug; 612 | }; 613 | AE4F43171EEA91730026430A /* Release */ = { 614 | isa = XCBuildConfiguration; 615 | buildSettings = { 616 | COMBINE_HIDPI_IMAGES = YES; 617 | DEVELOPMENT_TEAM = 3E4LSSERGY; 618 | INFOPLIST_FILE = YHLazyCodeUITests/Info.plist; 619 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; 620 | PRODUCT_BUNDLE_IDENTIFIER = MasterFly.YHLazyCodeUITests; 621 | PRODUCT_NAME = "$(TARGET_NAME)"; 622 | TEST_TARGET_NAME = YHLazyCode; 623 | }; 624 | name = Release; 625 | }; 626 | AE4F432E1EEA91D30026430A /* Debug */ = { 627 | isa = XCBuildConfiguration; 628 | buildSettings = { 629 | CODE_SIGN_ENTITLEMENTS = YHLazyCodeTool/YHLazyCodeTool.entitlements; 630 | CODE_SIGN_IDENTITY = "Mac Developer"; 631 | COMBINE_HIDPI_IMAGES = YES; 632 | DEVELOPMENT_TEAM = 3E4LSSERGY; 633 | INFOPLIST_FILE = YHLazyCodeTool/Info.plist; 634 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks"; 635 | MACOSX_DEPLOYMENT_TARGET = 10.10; 636 | PRODUCT_BUNDLE_IDENTIFIER = com.YHLazyCode.YHLazyCodeTool; 637 | PRODUCT_NAME = "$(TARGET_NAME)"; 638 | SKIP_INSTALL = YES; 639 | }; 640 | name = Debug; 641 | }; 642 | AE4F432F1EEA91D30026430A /* Release */ = { 643 | isa = XCBuildConfiguration; 644 | buildSettings = { 645 | CODE_SIGN_ENTITLEMENTS = YHLazyCodeTool/YHLazyCodeTool.entitlements; 646 | CODE_SIGN_IDENTITY = "Mac Developer"; 647 | COMBINE_HIDPI_IMAGES = YES; 648 | DEVELOPMENT_TEAM = 3E4LSSERGY; 649 | INFOPLIST_FILE = YHLazyCodeTool/Info.plist; 650 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks"; 651 | MACOSX_DEPLOYMENT_TARGET = 10.10; 652 | PRODUCT_BUNDLE_IDENTIFIER = com.YHLazyCode.YHLazyCodeTool; 653 | PRODUCT_NAME = "$(TARGET_NAME)"; 654 | SKIP_INSTALL = YES; 655 | }; 656 | name = Release; 657 | }; 658 | /* End XCBuildConfiguration section */ 659 | 660 | /* Begin XCConfigurationList section */ 661 | AE4F42E01EEA91730026430A /* Build configuration list for PBXProject "YHLazyCode" */ = { 662 | isa = XCConfigurationList; 663 | buildConfigurations = ( 664 | AE4F430D1EEA91730026430A /* Debug */, 665 | AE4F430E1EEA91730026430A /* Release */, 666 | ); 667 | defaultConfigurationIsVisible = 0; 668 | defaultConfigurationName = Release; 669 | }; 670 | AE4F430F1EEA91730026430A /* Build configuration list for PBXNativeTarget "YHLazyCode" */ = { 671 | isa = XCConfigurationList; 672 | buildConfigurations = ( 673 | AE4F43101EEA91730026430A /* Debug */, 674 | AE4F43111EEA91730026430A /* Release */, 675 | ); 676 | defaultConfigurationIsVisible = 0; 677 | defaultConfigurationName = Release; 678 | }; 679 | AE4F43121EEA91730026430A /* Build configuration list for PBXNativeTarget "YHLazyCodeTests" */ = { 680 | isa = XCConfigurationList; 681 | buildConfigurations = ( 682 | AE4F43131EEA91730026430A /* Debug */, 683 | AE4F43141EEA91730026430A /* Release */, 684 | ); 685 | defaultConfigurationIsVisible = 0; 686 | defaultConfigurationName = Release; 687 | }; 688 | AE4F43151EEA91730026430A /* Build configuration list for PBXNativeTarget "YHLazyCodeUITests" */ = { 689 | isa = XCConfigurationList; 690 | buildConfigurations = ( 691 | AE4F43161EEA91730026430A /* Debug */, 692 | AE4F43171EEA91730026430A /* Release */, 693 | ); 694 | defaultConfigurationIsVisible = 0; 695 | defaultConfigurationName = Release; 696 | }; 697 | AE4F432D1EEA91D30026430A /* Build configuration list for PBXNativeTarget "YHLazyCodePlugin" */ = { 698 | isa = XCConfigurationList; 699 | buildConfigurations = ( 700 | AE4F432E1EEA91D30026430A /* Debug */, 701 | AE4F432F1EEA91D30026430A /* Release */, 702 | ); 703 | defaultConfigurationIsVisible = 0; 704 | defaultConfigurationName = Release; 705 | }; 706 | /* End XCConfigurationList section */ 707 | }; 708 | rootObject = AE4F42DD1EEA91730026430A /* Project object */; 709 | } 710 | -------------------------------------------------------------------------------- /YHLazyCode/Base.lproj/Main.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 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | Default 509 | 510 | 511 | 512 | 513 | 514 | 515 | Left to Right 516 | 517 | 518 | 519 | 520 | 521 | 522 | Right to Left 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | Default 534 | 535 | 536 | 537 | 538 | 539 | 540 | Left to Right 541 | 542 | 543 | 544 | 545 | 546 | 547 | Right to Left 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | --------------------------------------------------------------------------------