【问题标题】:what's the difference between using property defined in .h and in .m [duplicate]使用.h和.m中定义的属性有什么区别[重复]
【发布时间】:2014-05-23 22:14:13
【问题描述】:

我有一个使用自动合成的财产支票簿。

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

【问题讨论】:

  • 提问前请先搜索。之前已经介绍过好几次了。

标签: objective-c properties


【解决方案1】:

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

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

//
//  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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    相关资源
    最近更新 更多