Основная проблема импорта Objective-C - PullRequest
1 голос
/ 16 марта 2012

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

Ответы [ 2 ]

3 голосов
/ 16 марта 2012

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

_adView

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

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

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

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

1 голос
/ 16 марта 2012

Хорошо, есть ли 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;

...
...