【问题标题】:Forward declaration and parametrized classes前向声明和参数化类
【发布时间】:2018-09-13 23:33:07
【问题描述】:

我有一个参数化类,我们称之为ParameterizedClass。当我在使用前向声明 (@class ParameterizedClass;) 的头文件中使用它时,如果我声明属性 ParameterizedClass<Type>,编译器会输出此错误 Type arguments cannot be applied to non-parameterized class 'ParameterizedClass'

如何在不导入类头的情况下在使用前向声明的同时使用参数?

【问题讨论】:

    标签: ios objective-c


    【解决方案1】:

    如果我理解正确,您正试图在您的标头中声明 ParameterizedClass<Type> 类型的属性,编译器会抱怨,因为它知道的所有 ParameterizedClass 的唯一声明都是非参数化的(即 @class ParameterizedClass;。)

    我建议你将前向声明改为@class ParameterizedClass<T>;

    然后您就可以声明您的财产了: @property (strong, nonatomic) ParameterizedClass<Type *> * property;

    【讨论】:

    • 它就像一个魅力。谢谢!我没有想到它的工作方式与@interface 声明的工作方式相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2011-05-08
    相关资源
    最近更新 更多