├── 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 下来
15 | * 复制如下图中的**.app**文件到应用程序中。(因有小伙伴反应下载下来的工程直接运行会出错(因为需要修改bundle id),所以工程文件的根目录上我已经上传了个.app 文件,直接复制该文件即可,不需要麻烦的再运行工程)
16 | * 找到刚刚复制进去的app,双击即可
17 | 
18 | * 确认 "系统偏好设置-->扩展"中对应的plugin 是否勾选!然后重启xcode 即可生效。
19 |
20 |
21 | ###使用方法
22 | * 首先需要在当前文件任意位置写上"#pragma mark - Get and Set" 这行代码,一般推荐写在文件end 的上面
23 | 
24 |
25 | * 选中你想要的property,如下图
26 | 
27 | * Editor 中找到刚安装的插件,点击确认
28 | 
29 | * 会自动生成如下的懒加载代码
30 |
31 | * 当然你可以在Xcode-->preferences-->key bindings 中搜索该插件找到并添加快捷键,当然要注意不要和Xcode本身的快捷键冲突了。
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 |
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 |
--------------------------------------------------------------------------------