使用.h和.m中定义的属性之间的区别是什么

时间:2014-05-23 22:14:13

标签: objective-c properties

我有一个使用自动合成的属性支票簿。

如果在.h内部定义界面,在.m内,我必须使用_checkbook;但如果我在.m中定义,我必须使用支票簿,为什么?

1 个答案:

答案 0 :(得分:0)

.h文件中定义的属性是公共的。 .m文件中定义的属性是私有的。

您无需在两个文件中声明属性。你选。如果您只需要从.m文件中访问该属性,则将其放在那里,否则将其设置为公共属性并在.h文件中定义它。如果您为@synthesize checkbook = _checkbook;定义了一个自定义getter和setter方法,那么您只需要在开始@implementation YourViewController块内编写_checkbook的唯一时间。

//
//  YourViewController.m
//  Company
//
//  Created by First Last on 5/23/14.
//  Copyright (c) 2014 Company. All rights reserved.
//

#import "YourViewController.h"

@interface YourViewController ()
@property (strong, nonatomic) UIView *checkbook; // Private
@end

@implementation YourViewController

/*
Your method defs...
*/

- (void)viewDidLoad
{
    // Invoke super
    [super viewDidLoad];

    // Your code
    self.checkbook.backgroundColor = [UIColor redColor];
}

@end