【问题标题】:Basic Objective-C Import Issue基本 Objective-C 导入问题
【发布时间】:2023-03-27 11:00:01
【问题描述】:

在我的 AppController 中,我有一个 if( _adView ) 调用。 if( _adView ) 在 MoPubManager.h 中声明。所以,我在 AppController 的顶部添加了#import "MoPubManager.h"。但是,我收到一个突出显示 if( _adView ) 调用的错误,并指出“使用未声明的标识符”。我虽然导入标题会解决这个问题。这可能是一个非常新手的问题,我对 Objective-C 还是很陌生。

【问题讨论】:

    标签: objective-c xcode cocoa import mopub


    【解决方案1】:

    如果_adView"MoPubManager.h"的一个属性,那么你可以访问

    _adView
    

    在任何其他控制器中通过在该控制器中导入 "MoPubManager.h" 并创建该 "MoPubManager.h" 的对象

    点赞MoPubManager *obj = [MoPubManager alloc]init];

    然后你可以使用obj._adview访问_adView

    注意:您可以使用属性nonatomicassign 设置_adView。如果设置为assign 属性,您可以从任何其他控制器更改_adView 的值

    【讨论】:

    • 太棒了,非常感谢,消除了错误!还有一件小事,我打电话给[self hideBanner:YES];,它也在 MoPubManager 中,但它是一个实际的方法(我认为这个名字,抱歉在这方面还是很新的),我有一个警告说“-hidebanner找不到”。
    • 在 MoPubManager.h 中声明方法“hidebanner”。
    • 看起来我已经有了,在 MoPubManager.h 中写着- (void)hideBanner:(BOOL)shouldDestroy;。再次感谢您的帮助。
    【解决方案2】:

    那么,是否有一个 _adView 的访问器,如 moPubManager.h 中所声明的那样?

    我的意思是你看到类似...的东西吗?

    (在 moPubManager.h 中) @property (assign) id adView;

    另外,永远记住变量“属于”类。 AppController 文件中没有像“_adView”这样的类似 C 的东西,仅仅是因为您导入了它的标题。什么会起作用:

    if ([moPub adView]) {... 在您的 AppController 中

    前提是:

    • 您的 AppController 定义了一个 moPubManager 实例 (moPubManager* moPub)
    • adView 有它的访问器:

    在 moPubManager.h 中:

    @interface moPubManager : NSObject
    {
    id _adView;
    ...
    }
    
    @property (assign) id _adView;
    

    在 moPubManager.m 中:

    @implementation moPubManager
    
    @synthesize adView=_adView;
    
    ...
    

    【讨论】:

    • 我想是的,它只是 @property (nonatomic, retain) MPAdView *adView;,我应该在 moPubManager.h 中添加您的代码吗?谢谢。
    • 您的 AppController 类中是否有 moPubManager 的实例?喜欢moPubInstance* moPubManager?如果是这样,您可以使用 if ([moPubInstance adView]) { } 等来访问它(从您的 AppController)... ;-)
    猜你喜欢
    • 1970-01-01
    • 2010-11-09
    • 2011-06-13
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多