IBOutlet申报处
IBOutlet declaration place
在 Google 上搜索了这个混乱之后,我 found out 放置 IBOutlet
的最佳位置是:
@interface GallantViewController : UIViewController
@property (nonatomic, weak) IBOutlet UISwitch *switch;
@end
但是据我所说,现在 switch
变量在 GallantViewController
之外可见。这不奇怪吗?我以为这个错误的方法:
@interface GoofusViewController : UIViewController {
IBOutlet UISwitch *_switch
}
@end
是这样的,移动它会修复它。例如,为什么要从另一个 class 操作按钮,而不是仅在 GallantViewController
中实现它的逻辑?
@interface
可以出现在 .h
文件(public 属性)和 .m
文件(私有属性)中。 IBOutlets
应在 .m
文件中声明。
例如,这里是视图控制器的示例 .m
文件
#import "MainViewController.h"
@interface MainViewController ()
// the following property is not visible outside this file
@property (weak, nonatomic) IBOutlet UIView *someView;
@end
@implementation MainViewController
- (void)viewDidLoad
{
[super viewDidLoad];
}
@end
从技术上讲,.m
文件中的 @interface
是一个 class 扩展名(在 class 上也称为匿名类别),但这没有实际意义兴趣。这只是一种将私有属性添加到 class.
的方法
在 Google 上搜索了这个混乱之后,我 found out 放置 IBOutlet
的最佳位置是:
@interface GallantViewController : UIViewController
@property (nonatomic, weak) IBOutlet UISwitch *switch;
@end
但是据我所说,现在 switch
变量在 GallantViewController
之外可见。这不奇怪吗?我以为这个错误的方法:
@interface GoofusViewController : UIViewController {
IBOutlet UISwitch *_switch
}
@end
是这样的,移动它会修复它。例如,为什么要从另一个 class 操作按钮,而不是仅在 GallantViewController
中实现它的逻辑?
@interface
可以出现在 .h
文件(public 属性)和 .m
文件(私有属性)中。 IBOutlets
应在 .m
文件中声明。
例如,这里是视图控制器的示例 .m
文件
#import "MainViewController.h"
@interface MainViewController ()
// the following property is not visible outside this file
@property (weak, nonatomic) IBOutlet UIView *someView;
@end
@implementation MainViewController
- (void)viewDidLoad
{
[super viewDidLoad];
}
@end
从技术上讲,.m
文件中的 @interface
是一个 class 扩展名(在 class 上也称为匿名类别),但这没有实际意义兴趣。这只是一种将私有属性添加到 class.