Основная проблема импорта Objective-C

В моем AppController у меня есть if( _adView ) вызов. if( _adView ) объявлен в MoPubManager.h. Итак, я добавил в #import "MoPubManager.h" в верхней части моего AppController. Но я получаю сообщение об ошибке if( _adView ) позвоните, и он заявляет "Использование необъявленного идентификатора". Я думал, что импорт заголовка исправит это. Вероятно, это действительно начинающий вопрос, я все еще очень плохо знаком с Objective-C.

2 ответа

Решение

Если _adView является собственностью "MoPubManager.h", то вы можете получить доступ к

_adView

в любом другом контроллере путем импорта "MoPubManager.h" в этом контроллере и создать объект этого "MoPubManager.h"

лайк MoPubManager *obj = [MoPubManager alloc]init];

тогда вы можете получить доступ _adView используя obj._adview

Примечание: вы можете установить _adView со свойствами nonatomic или же assign. Если установлено assign свойство, которое вы можете изменить значение _adView от любого другого контроллера

Хорошо, есть ли Accessor для _adView, как объявлено в moPubManager.h?

Я имею в виду, вы видите что-то вроде...?

(в moPubManager.h) @property (assign) id adView;

Также всегда помните, что переменные "принадлежат" классам. В вашем файле AppController нет такой C-подобной вещи, как _adView, просто потому, что вы импортировали его заголовок. Что бы работало, это что-то вроде:

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;

...
Другие вопросы по тегам