View控制器和类之间有什么区别

时间:2015-01-05 12:41:11

标签: ios objective-c class uiviewcontroller

这是我的class.h

#import "BankAccountDetails.h"
    static int openAccounts = 0;
    @implementation BankAccountDetails

    +(BankAccountDetails *) newAlloc{
        openAccounts++;

        return [BankAccountDetails alloc];
    }
    +(int) totalOpen{
         return openAccounts;;
    }

这是我的ViewController.h

 #import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize lbl;

- (void)loadView{
    [super loadView];
    NSLog(@" 1 LoadView Calling");
}

- (void)viewDidLoad {
    [super viewDidLoad];
    lbl=[[UILabel alloc] init];
    lbl.backgroundColor = [UIColor redColor];
    lbl.text = @"hello frnd i'm making a lable ";
    [self.view addSubview:lbl];

请仔细看看这个问题,我的问题是,实际上我很困惑我想知道Class.h和controller.h之间的区别。两者都是Class。

2 个答案:

答案 0 :(得分:1)

Class是一个抽象词,像我们这样的人(程序员)使用它来将真实实体表示为数字世界。

所有视图,对象和控制器都可以称为Class。

因此,视图控制器是一种类,它是视图的控制器,用于管理视图及其子视图及其相关操作。

两个班级的主要区别是两种方法都不同。

我的意思是class.h有类方法。类方法是可以在不创建类的对象的情况下调用的方法。您只需使用类名称即可调用它。

例如:

int total = [BankAccountDetails totalOpen];

并且ViewController.h类包含实例方法,要调用这些方法,需要类的对象。

例如:

ViewController *controller = [ViewController alloc] init];
[controller openAccount];

请注意

您已经编写了-viewDidLoad()方法,因此ViewController类必须使用UIViewController类进行扩展,否则会给您一个错误。

答案 1 :(得分:0)

将文件命名为[class name].h

是一种惯例

如果是类别[class]+[category].h

在您的情况下,您发布的ViewController.h实际上是ViewController.m(这是实现文件,而不是界面,“h”代表头文件。)

ViewController类扩展UIViewController类,您可以沿层次结构路径前往NSObject的根类。