Почему свойство в initWithFrame является нулевым на Objective-C? - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь разработать собственный модуль для реагирования, и я не знаю, как работает Objective-C, поэтому я иду интуицией и попытками.

Итак, я знаю, что здесь мой баннер загружается и отображается в приложении. Это работает.

BannerView.m

@implementation BannerView

...

- (instancetype)initWithFrame:(CGRect)frame
    {
        if ((self = [super initWithFrame:frame])) {        
            [self.bannerUnit setAutoRefreshMillisWithTime:35000];
            self.dfpView = [[DFPBannerView alloc] initWithAdSize:kGADAdSizeMediumRectangle];
            ...
            self.dfpView.adUnitID = @"/6499/example/banner";
            ...
            [self addSubview:self.dfpView];
        }
        return self;
    }

И у меня есть этот метод, где находится мост RN-Objective-C

- (void)loadBanner
{
   ...
}

На loadBanner я могу получить мои свойства, например

<Banner adUnitID={'123'} // inside RN

_adUnitID // inside Objective-C

Проблема сейчас в том, что внутри initWithFrame , _adUnitID всегда равен нулю. Я попытался _adUnitID, self._adUnitID, self.adUnitID. Но все тот же.

NSLog(@"adUnitID %@", _adUnitID); // always null

[UPDATE]

Здесь я определяю adUnitID

BannerViewManager.m

RCT_EXPORT_MODULE();

...

RCT_EXPORT_VIEW_PROPERTY(adUnitID, NSString)

BannerView.h

@interface BannerView : RCTView <GADBannerViewDelegate>

...

@property (nonatomic, copy) NSString *adUnitID;

Итак, что я могу делать не так? Можно ли это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...