gpt4 book ai didi

ios - 从 XCode 4.2 到 4.3,新的 ViewController 类 .m 文件的定义不同。为什么?

转载 作者:行者123 更新时间:2023-12-01 17:18:45 26 4
gpt4 key购买 nike

像大多数人一样,我最近下载了最新版本的 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;
}

\ETC...

自 XCode 4.3 以来新添加的代码是 #import 下的部分陈述:
@interface TestViewController ()

@end

这段代码的目的是什么?括号内可以/应该有任何内容吗?如果有任何代码进入 @interface@end陈述?

简而言之,将这段代码添加到模板有什么意义?作为一个有趣的旁注,当我尝试创建 NSObject从模板中,没有添加上面提到的代码片段。它可能会出现在其他类型的类模板中,但目前我只遇到过 UIViewControllerUITableViewController对象。

最佳答案

那是一个 Objective-C class extension .它用于定义“私有(private)”变量、属性和方法。

这个想法是 .h 文件应该只包含可公开访问的属性和方法。很多时候,在编写 View Controller 时,您会想要/需要编写一些方法,但这些方法不应公开可见(即,这些方法只能在您的 .m 文件中使用)。您在类扩展中声明这些方法以使其不受公共(public) .h 接口(interface)的影响。

关于ios - 从 XCode 4.2 到 4.3,新的 ViewController 类 .m 文件的定义不同。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9810470/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com