代码之家  ›  专栏  ›  技术社区  ›  Kevlar

您能否声明一个变量类型,它在objective-c中同时需要一个类和一个协议?

  •  1
  • Kevlar  · 技术社区  · 14 年前

    我知道在目标c中声明变量类型时,可以执行以下操作之一:

    id obj0;
    MyClass *obj1;
    id<MyProtocol> obj2;
    

    我想知道的是这是否有效(语法和语义上):

    MyClass<MyProtocol> *obj3;
    

    我想要的是在这个变量中存储一个cocoa类,它必须实现一个给定的协议;如果我能控制“MyClass”,我就不需要这个了,但我基本上想知道我是否可以不必创建自己的抽象类,而其他多个不同的类需要从中继承,而它们可以直接从“MyClass”继承。

    1 回复  |  直到 14 年前
        1
  •  3
  •   mipadi    14 年前

    对。

    MyClass<MyProtocol> *obj3;
    

    obj3 MyClass 或者一个子类,它也实现了 MyProtocol .