Ios “这对”意味着什么;“遵守协议”;在Objective-C/Xcode中?
在编写iOS教程应用程序时,我遇到了很多“这个东西符合那个协议”。这是什么意思 我看到这有两种类型:Ios “这对”意味着什么;“遵守协议”;在Objective-C/Xcode中?,ios,objective-c,xcode,Ios,Objective C,Xcode,在编写iOS教程应用程序时,我遇到了很多“这个东西符合那个协议”。这是什么意思 我看到这有两种类型: 沿着id sectionInfo=[self.fetchedResultsController sections][section]的行 通过将某个委托设置为self,然后必须实现委托方法或类似的方法 区别是什么?我们为什么要这样做 编辑:协议是实现某些方法的承诺。遵守协议意味着你们双方都做出承诺并履行它 您的id示例是“实现协议所需方法的任何类型的对象NSFetchedResultsSecti
id sectionInfo=[self.fetchedResultsController sections][section]的行代码>
编辑:协议是实现某些方法的承诺。遵守协议意味着你们双方都做出承诺并履行它 您的
id
示例是“实现协议所需方法的任何类型的对象NSFetchedResultsSectionInfo
”(id
在Objective-C中表示“任何类型的对象”)
大多数setDelegate:
方法要求参数符合某些协议。因此,在将自己指定为代理之前,您需要确保添加承诺(作为@接口的一部分)并实现方法(以实现承诺)
Objective-C允许您定义协议,协议声明方法
预期用于特定情况。本章介绍
定义正式协议的语法,并解释如何标记
类接口符合协议,这意味着
类必须实现所需的方法
对于id
第一部分,我只写了那一行,不需要实现任何所需的NSFetchedResultsSectionInfo方法,这就像中的部分只是变量定义的一部分。但是通过将self-view控制器定义为委托,我必须将类设置为既符合协议又实现委托方法。这就是我感到困惑的原因。id
是sectionInfo
的类型。这不是你喜欢的类型。因此,[self.fetchedResultsController sections][section]
返回的任何对象都必须符合协议。您的视图控制器不需要这样做。现在这很有意义。谢谢