首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IBOutlet最佳实践

IBOutlet最佳实践
EN

Stack Overflow用户
提问于 2015-05-13 19:37:27
回答 5查看 1.4K关注 0票数 7

我想知道哪个地方最适合放置故事板中的IBOutlets:

a)在头文件(.h)中

b)在.m文件上创建的类扩展中

谢谢

问候

EN

回答 5

Stack Overflow用户

发布于 2015-05-13 19:43:13

您必须记住,.h是一个公共标头。

所以把你的IBOutlet放在那里,如果它们应该被其他类访问的话。

然而,即使你能做到这一点。我要说的是,在公共标头中公开IBOutlet不是一个好的做法(从面向对象的角度来看),因为您正在公开一些实现细节,这些细节应该只对关心的人可见。

简而言之,将IBOutlet放在.m的类扩展中是一种很好的做法。

票数 14
EN

Stack Overflow用户

发布于 2015-05-13 19:42:50

来自苹果的Resource Programming Guide: Nib Files

出口通常被认为是定义类的私有属性;除非有理由公开该属性,否则应将属性声明隐藏为类扩展。

票数 8
EN

Stack Overflow用户

发布于 2015-05-13 19:42:34

如果你不想公开这个出口,那么类扩展是最好的地方。您的.h应该整洁干净,并且应该只包含那些公共的方法或属性(可供其他程序员使用)。这样,您就不会因为在.h文件中没有不必要的ivars和方法减速而使您的队友感到困惑

这一切都是为了管理代码,减少混淆,否则Objective-C中就没有私有方法/属性了

此外,如果你检查任何苹果样本,它们都遵循相同的模式。例如,LoadingStatus.m有代码

代码语言:javascript
运行
复制
#import "LoadingStatus.h"

@interface LoadingStatus ()

@property (nonatomic, strong) UIActivityIndicatorView *progress;
@property (nonatomic, strong) UILabel *loadingLabel;

@end
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30213677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档