接口生成器 - Xcode/IB是否真的不检查协议



Xcode5 环境。(不是旧版本。

1)创建一个名为"测试"的新类。 这是一个UIView控制器

@interface Test:UIViewController

2)在故事板中,制作一个新屏幕,UIView控制器,将其更改为"测试"

显然,如果在情节提要上添加一个控件(例如按钮),则可以将其拖动到 Test.h 中定义的 IBOutlet。 没关系。

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

@interface Test:UIViewController
          <
          UICollectionViewDataSource,
          UICollectionViewDelegateFlowLayout
          >

4)现在在IB中将一个小的UICollectionView拖到视图中。

5) 单击集合视图,连接检查器。现在,将委托和数据源拖到"测试"

一切正常..没问题

然而。 断开这些连接。 返回到步骤 (3)。 不要执行步骤 3。 换句话说,您"忘记"将协议添加到测试中。

现在尝试步骤 (5)

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

对我来说,你可以拖动到 UICollectionViewDataSource(

比如说)似乎很奇怪,而事实上,它根本不是 UICollectionViewDataSource(!

(当然,你不能在没有IBOutlet的地方拖动一个按钮。

(A)其他人都看到了这种行为吗,我像往常一样搞砸了吗?

(B) 这可能是一个已知的错误/遗漏吗?

C)我还有什么遗漏的吗("哦,它必须是那样的,因为......")

干杯

是的,这是真的。UIB 不检查是否实现了任何协议方法。即使您在项目的"生成设置"中启用了Incomplete Objective-C Protocols警告,其行为也是相同的。

最新更新