1

私の AppController にif( _adView )電話があります。if( _adView )MoPubManager.h で宣言されています。そこで、#import "MoPubManager.h"AppController の一番上に追加しました。しかし、if( _adView )呼び出しを強調するエラーが表示され、「宣言されていない識別子の使用」と表示されます。ヘッダーをインポートするとこれが修正されると思います。これはおそらく本当に初心者の質問です。私はまだObjective-Cに非常に慣れていません。

4

2 に答える 2

3

_adViewが のプロパティである場合"MoPubManager.h"、にアクセスできます

_adView

そのコントローラーにインポート"MoPubManager.h"して、そのコントローラーのオブジェクトを作成することにより、他のコントローラーで"MoPubManager.h"

お気に入りMoPubManager *obj = [MoPubManager alloc]init];

_adView次に、を使用してアクセスできますobj._adview

注:_adViewプロパティnonatomicまたはで設定できます。プロパティassignに設定されている場合は、他のコントローラーからassignの値を変更できます_adView

于 2012-03-16T05:20:42.953 に答える
1

さて、moPubManager.h で宣言されているように、_adView のアクセサーはありますか?

つまり、次のようなものが表示されます... ?

(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;

...
于 2012-03-16T05:14:56.820 に答える