iPhone开发技巧之工具篇(1)--- 将XIB文件转换为Objective-C源程序
2011-05-17 21:07
316 查看
nib2objc是一个小巧的转换工具,可以将XIB文件自动转换为Objective-C的源代码文件。
通常,考虑到程序的效率时,才将XIB直接转换为源代码文件。但是这样一来,通过Interface Builder设定的实例变量与行为方法的接续也没有了,需要从新手写。但是,该工具的源代码是公开的,稍加修饰,就能完成大部分工作。
使用的时候,首先下载的工程代码并用XCode编译一下,会生成一个命令行程序文件 nib2objc。然后如下所示执行转换:
像是上面view转换后会输出以下代码:
通常,考虑到程序的效率时,才将XIB直接转换为源代码文件。但是这样一来,通过Interface Builder设定的实例变量与行为方法的接续也没有了,需要从新手写。但是,该工具的源代码是公开的,稍加修饰,就能完成大部分工作。
使用的时候,首先下载的工程代码并用XCode编译一下,会生成一个命令行程序文件 nib2objc。然后如下所示执行转换:
1 | $ nib2objc WebView.xib > WebView.m |
像是上面view转换后会输出以下代码:
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 | UIBarButtonItem *view39 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; view39.frame = CGRectMake(0.0, 0.0, 0.0, 0.0); view39.enabled = YES; view39.style = UIBarButtonItemStylePlain; view39.tag = 0; view39.width = 0.000; UIBarButtonItem *view64 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:nil action:nil]; view64.frame = CGRectMake(0.0, 0.0, 0.0, 0.0); view64.enabled = YES; view64.style = UIBarButtonItemStylePlain; view64.tag = 0; view64.width = 0.000; UIBarButtonItem *view57 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; view57.frame = CGRectMake(0.0, 0.0, 0.0, 0.0); view57.enabled = YES; view57.style = UIBarButtonItemStylePlain; view57.tag = 0; view57.width = 0.000; UIBarButtonItem *view33 = [[UIBarButtonItem alloc] initWithTitle:(null) style:UIBarButtonItemStylePlain target:nil action:nil]; view33.frame = CGRectMake(0.0, 0.0, 0.0, 0.0); view33.enabled = YES; view33.image = nil; view33.style = UIBarButtonItemStylePlain; view33.tag = 0; view33.width = 0.000; UIBarButtonItem *view66 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; view66.frame = CGRectMake(0.0, 0.0, 0.0, 0.0); view66.enabled = YES; view66.style = UIBarButtonItemStylePlain; view66.tag = 0; view66.width = 0.000; UIWebView *view31 = [[UIWebView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 460.0)]; view31.frame = CGRectMake(0.0, 0.0, 320.0, 460.0); view31.alpha = 1.000; view31.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; view31.backgroundColor = [UIColor colorWithWhite:1.000 alpha:1.000]; view31.clearsContextBeforeDrawing = YES; view31.clipsToBounds = YES; view31.contentMode = UIViewContentModeScaleToFill; view31.detectsPhoneNumbers = NO; view31.hidden = NO; view31.multipleTouchEnabled = YES; view31.opaque = YES; view31.scalesPageToFit = YES; view31.tag = 0; view31.userInteractionEnabled = YES; UIBarButtonItem *view56 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemStop target:nil action:nil]; view56.frame = CGRectMake(0.0, 0.0, 0.0, 0.0); view56.enabled = YES; view56.style = UIBarButtonItemStylePlain; view56.tag = 0; view56.width = 0.000; UIBarButtonItem *view48 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; view48.frame = CGRectMake(0.0, 0.0, 0.0, 0.0); view48.enabled = YES; view48.style = UIBarButtonItemStylePlain; view48.tag = 0; view48.width = 0.000; UIToolbar *view32 = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0, 416.0, 320.0, 44.0)]; view32.frame = CGRectMake(0.0, 416.0, 320.0, 44.0); view32.alpha = 1.000; view32.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin; view32.barStyle = UIBarStyleBlackTranslucent; view32.clearsContextBeforeDrawing = NO; view32.clipsToBounds = NO; view32.contentMode = UIViewContentModeScaleToFill; view32.hidden = NO; view32.multipleTouchEnabled = NO; view32.opaque = NO; view32.tag = 0; view32.userInteractionEnabled = YES; UIBarButtonItem *view34 = [[UIBarButtonItem alloc] initWithTitle:(null) style:UIBarButtonItemStylePlain target:nil action:nil]; view34.frame = CGRectMake(0.0, 0.0, 0.0, 0.0); view34.enabled = YES; view34.image = nil; view34.style = UIBarButtonItemStylePlain; view34.tag = 0; view34.width = 0.000; UIBarButtonItem *view36 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; view36.frame = CGRectMake(0.0, 0.0, 0.0, 0.0); view36.enabled = YES; view36.style = UIBarButtonItemStylePlain; view36.tag = 0; view36.width = 0.000; UIView *view27 = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 460.0)]; view27.frame = CGRectMake(0.0, 0.0, 320.0, 460.0); view27.alpha = 1.000; view27.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin; view27.backgroundColor = [UIColor colorWithWhite:1.000 alpha:1.000]; view27.clearsContextBeforeDrawing = NO; view27.clipsToBounds = NO; view27.contentMode = UIViewContentModeScaleToFill; view27.hidden = NO; view27.multipleTouchEnabled = NO; view27.opaque = YES; view27.tag = 0; view27.userInteractionEnabled = YES; UIBarButtonItem *view38 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; view38.frame = CGRectMake(0.0, 0.0, 0.0, 0.0); view38.enabled = YES; view38.style = UIBarButtonItemStylePlain; view38.tag = 0; view38.width = 0.000; UIBarButtonItem *view35 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:nil action:nil]; view35.frame = CGRectMake(0.0, 0.0, 0.0, 0.0); view35.enabled = YES; view35.style = UIBarButtonItemStylePlain; view35.tag = 0; view35.width = 0.000; [view27 addSubview:view31]; [view32 addSubview:view33]; [view32 addSubview:view34]; [view32 addSubview:view36]; [view32 addSubview:view38]; [view32 addSubview:view39]; [view32 addSubview:view48]; [view32 addSubview:view57]; [view32 addSubview:view35]; [view32 addSubview:view56]; [view32 addSubview:view64]; [view32 addSubview:view66]; [view27 addSubview:view32]; |
相关文章推荐
- iPhone开发技巧之工具篇(1)— 将XIB文件转换为Objective-C源程序
- iPhone开发技巧之工具篇(2)--- Accessorizer自动化生成代码的工具
- Objective-C iPhone起步开发的8条建议和技巧
- iPhone开发技巧之工具篇(3)--- 使用clang静态解析Objective-C程序
- Objective-C iPhone起步开发的8条建议和技巧
- iPhone开发技巧之工具篇(4)--- 使用afconvert转换WAV文件
- iPhone开发技巧之工具篇--- 使用afconvert转换WAV文件
- Objective-C iPhone起步开发的8条建议和技巧
- Objective-C iPhone起步开发的8条建议和技巧
- 工作记录二:iOS开发工具CocoaPods(objective-c第三方库管理工具)实用技巧
- iPhone开发技巧之工具篇(4)--- 使用afconvert转换WAV文件
- iPhone开发技巧之工具篇(4)--- 使用afconvert转换WAV文件
- iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式
- [开发工具]_[Sublime Text 2]_[使用技巧问题集锦]
- (原)IPhone开发时把ToolBar中的元素居中的技巧
- iPhone开发中的技巧整理
- 开发技巧: 利用lipo 编译合并iPhone模拟器和真机通用的静态类库
- Visual C++开发工具的一些使用技巧
- [iphone游戏开发]iphone-Cocos2D游戏开发之二:精灵表的详细讲解(一)和Zwoptex工具