Ios “这对”意味着什么;“遵守协议”;在Objective-C/Xcode中?

Ios “这对”意味着什么;“遵守协议”;在Objective-C/Xcode中?,ios,objective-c,xcode,Ios,Objective C,Xcode,在编写iOS教程应用程序时,我遇到了很多“这个东西符合那个协议”。这是什么意思 我看到这有两种类型: 沿着id sectionInfo=[self.fetchedResultsController sections][section]的行 通过将某个委托设置为self,然后必须实现委托方法或类似的方法 区别是什么?我们为什么要这样做 编辑:协议是实现某些方法的承诺。遵守协议意味着你们双方都做出承诺并履行它 您的id示例是“实现协议所需方法的任何类型的对象NSFetchedResultsSecti

在编写iOS教程应用程序时,我遇到了很多“这个东西符合那个协议”。这是什么意思

我看到这有两种类型:

  • 沿着
    id sectionInfo=[self.fetchedResultsController sections][section]的行

  • 通过将某个委托设置为self,然后必须实现委托方法或类似的方法

  • 区别是什么?我们为什么要这样做


    编辑:

    协议是实现某些方法的承诺。遵守协议意味着你们双方都做出承诺并履行它

    您的
    id
    示例是“实现协议所需方法的任何类型的对象
    NSFetchedResultsSectionInfo
    ”(
    id
    在Objective-C中表示“任何类型的对象”)

    大多数
    setDelegate:
    方法要求参数符合某些协议。因此,在将自己指定为代理之前,您需要确保添加承诺(作为
    @接口的一部分)并实现方法(以实现承诺)

    Objective-C允许您定义协议,协议声明方法 预期用于特定情况。本章介绍 定义正式协议的语法,并解释如何标记 类接口符合协议,这意味着 类必须实现所需的方法


    对于
    id
    第一部分,我只写了那一行,不需要实现任何所需的
    NSFetchedResultsSectionInfo方法,这就像中的部分只是变量定义的一部分。但是通过将self-view控制器定义为委托,我必须将类设置为既符合协议又实现委托方法。这就是我感到困惑的原因。
    id
    sectionInfo
    的类型。这不是你喜欢的类型。因此,
    [self.fetchedResultsController sections][section]
    返回的任何对象都必须符合协议。您的视图控制器不需要这样做。现在这很有意义。谢谢