大佬教程收集整理的这篇文章主要介绍了ios – 转发课程作为超级课程,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
但是,我的库中的一个类是AFhttpSessionManager的子类.所以我之前的.h文件看起来像这样:
#import <Foundation/Foundation.h> #import "AFNetworking.h" @interface MyClass : AFhttpSessionManager + (MyClass *) sharedInstance; - (void) doMagic; @end
当我编译库并将.a和.h文件导入新的测试项目时,我收到错误“未找到词法或预处理器问题’AFNetworking.h’文件”.认为解决方案是使用前向类声明并将#import“AFNetworking.h”移动到.m文件中,如下所示:
#import <Foundation/Foundation.h> @class AFhttpSessionManager; @interface MyClass : AFhttpSessionManager + (MyClass *) sharedInstance; - (void) doMagic; @end
不幸的是,这种方法抛出了一个错误“尝试使用前向类’AFhttpSessionManager’作为’MyClass’的超类”.@H_675_17@据我所知,前向类声明你只是说“嘿编译器classXXX存在,但你看不到它的方法和@L_674_12@”.因此,我不确定这是否是我的问题的解决方案.
有什么建议如何从类中继承但不导入它?
您还可以使用协议作为类的接口,并公开一个返回id< MyClassProtocol>的方法.就像是:
@protocol MyClassProtocol - (void) doMagic; @end id<MyClassProtocol> GetSharedInstance();
@interface MyClass<MyClassProtocol>: AFhttpSessionManager // ... @end
您可以实例化并从GetSharedInstance返回.
以上是大佬教程为你收集整理的ios – 转发课程作为超级课程全部内容,希望文章能够帮你解决ios – 转发课程作为超级课程所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。