是真的 Xcode/IB 不检查协议吗?

Posted

技术标签:

【中文标题】是真的 Xcode/IB 不检查协议吗?【英文标题】:Is it true Xcode/IB DOES NOT check for protocols? 【发布时间】:2014-04-01 13:07:57 【问题描述】:

仅限 Xcode5 环境。 (不是旧版本。)

1) 创建一个名为say Test 的新类。这是一个 UIViewController

@interface Test:UIViewController

2) 在storyboard中,新建一个界面,一个UIViewController,改成“Test”

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

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

@interface Test:UIViewController
          <
          UICollectionViewDataSource,
          UICollectionViewDelegateFlowLayout
          >

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

5) 点击集合视图,连接检查器。现在,将委托和数据源拖到“Test”

一切正常..没问题

但是。断开这些连接。返回步骤 (3)。 不要做第 3 步。换句话说,您“忘记”将协议添加到测试中。

现在尝试步骤 (5)

事实上(我相信)......它工作得很好。

您可以拖动到 UICollectionViewDataSource(比如说)对我来说似乎很奇怪,而实际上它根本不是 UICollectionViewDataSource(!)

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

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

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

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

干杯

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于是真的 Xcode/IB 不检查协议吗?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode - IB Designable:无法渲染和更新自动布局(找不到合适的图像)

CRC32 对文件完整性检查真的那么糟糕吗?

你能从 Django 的模板中检查互联网协议吗?

使用 Firefox Quantum 检查 Websocket 帧

Xcode IB 警告 UICollectionViewCell 中 UIStackView 的位置不明确,尽管它不应该是

如何在 VC++ 中检查链接是不是存在?