IBOutlet最佳实践

api*_*nho 6 objective-c iboutlet ios uistoryboard

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

a)在头文件(.h)中

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

谢谢

问候

Otá*_*vio 13

你必须记住.h是一个公共标题.

IBOutlet如果他们应该可以被其他班级访问,那就放在那里.

但是,即使你可以做到这一点.我会说,IBOutlet在公共标题中公开's不是一个好的做法(从面向对象的角度来看),因为你暴露了一些应该只对谁可见的实现细节.

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


Ken*_*ses 8

从Apple的资源编程指南:Nib文件:

奥特莱斯一般被认为是定义阶级的私人; 除非有理由公开公开财产,否则将财产声明隐藏为类扩展.


Wai*_*ain 3

假设这是针对视图控制器的,选项 b 更好,因为您不应该公开公开出口以供其他类直接交互。它们应该被视为您的私人知识。您的控制器应该公开一个不同的且更合适的接口。

如果它是一个视图,那么您应该如何解决这个问题就有点灰色了,因为 MVC 会引导您暴露出口以允许控制器使用它们。MVVM 会引导您隐藏插座,以便视图传递视图模型对象并在内部配置插座。