Основная проблема импорта 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;
...