Jhe*_*eBz 5 iphone protocols objective-c categories ios
我一直在阅读Objective-c Protocols and Categories,这对我来说似乎毫无意义.它们都用于以一些有趣的方式向程序添加内容,而不仅仅是手动添加它.
我可能会确信协议的目的是为了让你可以检查id的类型,但这确实是关于它的.我认为没有其他真正的用途.
至于类别,我真的不明白你为什么不把它们添加到代码中.为什么你需要手动指定一个类别中的方法,而不是只是正常地执行它?您是否想要制作一个"子类"但稍作修改?为什么不做一个子类?
我真的没有看到其中任何一个的目的,我希望有人可以告诉我他们真正的用途= /
提前谢谢,克里斯蒂安
fzw*_*zwo 15
类别是将方法添加到源不可用的类,例如所有Apple类(以NS,CG,CA等开头的类),而不需要对它们进行子类化.
协议的目的是定义遵循该协议的类必须实现的方法.在Java中,那些被称为接口.目的是编纂不是兄弟姐妹的类(同一超类的子类)之间的相似性.假设你有一个班级Chair和一个班级Petrol.这些并没有很多共同点,除了它们都遵守flammable协议,这要求它们具有某些方法,例如specificEnergy和flamingPoint.
现在你的Fire班级可以有一个方法addFlammableMaterial:(id <flammable>)material.
协议通常用于声明某些类的实例可以是某些其他实例的委托.您可以通过声明视图控制器UITableView声明它符合UITableViewDataSource协议来声明视图控制器作为数据源,这意味着您的viewController保证它实现该协议所需的方法,并且tableView可以安全地休息,因为它可以信任VC成为它的数据源.
| 归档时间: |
|
| 查看次数: |
6099 次 |
| 最近记录: |