是真的 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:无法渲染和更新自动布局(找不到合适的图像)
使用 Firefox Quantum 检查 Websocket 帧
Xcode IB 警告 UICollectionViewCell 中 UIStackView 的位置不明确,尽管它不应该是