这是真的Xcode中/ IB不检查协议?(Is it true Xcode/IB DOES NOT

2019-10-19 17:39发布

只有Xcode5环境。 (不旧的版本。)

1)创建一个名为新类说测试。 这是一个UIViewController

@interface Test:UIViewController

2)故事板,使一个新的屏幕,一个UIViewController,将其更改为“测试”

很明显,如果你在故事板添加控制(比如,一个按钮),您可以将其拖到Test.h.定义一个IBOutlet 没问题。

3)现在Test.h添加两个协议..

@interface Test:UIViewController
          <
          UICollectionViewDataSource,
          UICollectionViewDelegateFlowLayout
          >

4)现在IB拖动小UICollectionView在到视图。

5)单击集合视图,连接检查。 现在, 拖动委托和数据源,以“测试”

一切正常.. 没有问题

然而 。 断开这些连接。 回到步骤(3)。 不要做第3步。换句话说,你已经“遗忘”的协议添加到测试。

现在尝试步骤(5)

其实(我相信)......它工作正常。

我觉得奇怪,我说,你可以拖动到UICollectionViewDataSource(说)的时候,其实,那根本不是一个UICollectionViewDataSource(!)

(当然,你不能拖,说,一个按钮,在任何地方也没有IBOutlet中。)

(A)有没有其他人看到这种行为 ,已经我搞砸了像往常一样?

(B)这也许是一个已知的错误/遗漏

(C)是否有别的我失踪(“哦,它必须是这样的,因为......”)

干杯

Answer 1:

对,是真的。 UIB不检查任何协议方法被实现。 即使您启用了警告Incomplete Objective-C Protocols在构建设置为您的项目,它的行为是一样的。



文章来源: Is it true Xcode/IB DOES NOT check for protocols?