仅限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)点击集合视图,连接检查器。现在,将委托和dataSource拖到“测试”
一切正常.. 没问题。
然而即可。断开这些连接。回到步骤(3)。 不要执行第3步。换句话说,您已“忘记”将协议添加到测试中。
现在尝试步骤(5)
事实上(我相信)......它运作良好。
我觉得你可以拖到UICollectionViewDataSource(比方说),实际上它根本就不是UICollectionViewDataSource(!)
(当然,你不能在任何没有IBOutlet的地方拖动按钮。)
(A)其他人是否会看到这种行为,我是否像往常一样搞砸了?
(B)这可能是已知错误/遗漏吗?
(C)还有什么我想念的吗(“哦,它必须是那样的,因为......”)
干杯
答案 0 :(得分:1)
是的,这是真的。 UIB不检查是否实现了任何协议方法。即使您在项目的“构建设置”中为Incomplete Objective-C Protocols
启用了警告,其行为也是相同的。