RLH*_*RLH 1 cocoa-touch coding-style ios xcode4.2 xcode4.3
像大多数人一样,我最近下载了最新版本的XCode(4.3.1).我注意到,当我创建新UIViewController对象时,关联.m文件包含我以前从未见过的其他类定义代码.
具体来说,如果我创建一个UIViewController名为'TestViewController' 的新命令,我会得到以下.m文件输出.
\\... removed comments...
#import "TestViewController.h"
@interface TestViewController ()
@end
@implementation TestViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
\等等...
自XCode 4.3以来新添加的代码是#import声明下的部分:
@interface TestViewController ()
@end
Run Code Online (Sandbox Code Playgroud)
这段代码的目的是什么?可以/应该在括号内进行任何操作吗?是否有任何代码都在@interface和@end语句中?
简而言之,将此代码添加到模板的重点是什么?作为一个有趣的旁注,当我尝试NSObject从模板创建时,没有添加上面提到的代码片段.它可能出现在其他类型的类模板中,但目前我只遇到过它UIViewController和UITableViewController对象.
这是Objective-C类扩展.它用于定义"私有"变量,属性和方法.
我们的想法是.h文件应该只包含可公开访问的属性和方法.通常,在编写视图控制器时,您需要/需要编写方法,但这些方法不应公开显示(即,这些方法只应在.m文件中使用).您在类扩展中声明这些方法,以使其远离公共.h接口.
| 归档时间: |
|
| 查看次数: |
1781 次 |
| 最近记录: |