[Состояние GADSlot]: нераспознанный селектор отправлен экземпляру в iphone

Я новичок в iOS-разработке.

Я пытаюсь внедрить рекламу admob в iOS в свое приложение phonegap, поэтому я погуглил и нашел несколькоadmob без плагина.

после выполнения всей процедуры я получил сообщение об ошибке MyApp[2388:70b] * Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «-[состояние GADSlot]: нераспознанный селектор отправлен экземпляру 0x10415920»* *

поэтому я погуглил и обнаружил, что мне нужно изменить другие флаги компоновщика. (-ObjC)здесь

Я пробовал, но это не работает.

Я получаю эту ошибку.

это решение также не работает для меня. [состояние GADSlot]: в экземпляр отправлен неизвестный селектор

2014-04-21 13:04:41.252 MyApp[2388:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[GADSlot state]: unrecognized selector sent to instance 0x10415920'
*** First throw call stack:
(
 0   CoreFoundation                      0x038a85e4 __exceptionPreprocess + 180
 1   libobjc.A.dylib                     0x02acb8b6 objc_exception_throw + 44
 2   CoreFoundation                      0x03945903 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
 3   CoreFoundation                      0x0389890b ___forwarding___ + 1019
 4   CoreFoundation                      0x038984ee _CF_forwarding_prep_0 + 14
 5   MyApp                            0x0001a01e -[GADSlot isMakingRequest] + 36
 6   MyApp                            0x00019c7d -[GADSlot setAdType:andReloadRequest:] + 334
 7   MyApp                            0x00018a5e -[GADBannerView setAdSize:andReload:] + 512
 8   MyApp                            0x00019052 -[GADBannerView setAdSize:] + 62
 9   MyApp                            0x00019381 -[GADBannerView initWithAdSize:] + 171
 10  MyApp                            0x00003e17 -[MainViewController viewDidLoad] + 118
 11  UIKit                               0x0021c318 -[UIViewController loadViewIfRequired] + 696
 12  UIKit                               0x0021c5b4 -[UIViewController view] + 35
 13  MyApp                            0x00002997 -[AppDelegate application:didFinishLaunchingWithOptions:] + 763
 14  UIKit                               0x00102355 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 309
 15  UIKit                               0x00102b95 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1536
 16  UIKit                               0x001073a8 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 824
 17  UIKit                               0x0011b87c -[UIApplication handleEvent:withNewEvent:] + 3447
 18  UIKit                               0x0011bde9 -[UIApplication sendEvent:] + 85
 19  UIKit                               0x00109025 _UIApplicationHandleEvent + 736
 20  GraphicsServices                    0x038062f6 _PurpleEventCallback + 776
 21  GraphicsServices                    0x03805e01 PurpleEventCallback + 46
 22  CoreFoundation                      0x03823d65 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
 23  CoreFoundation                      0x03823a9b __CFRunLoopDoSource1 + 523
 24  CoreFoundation                      0x0384e77c __CFRunLoopRun + 2156
 25  CoreFoundation                      0x0384dac3 CFRunLoopRunSpecific + 467
 26  CoreFoundation                      0x0384d8db CFRunLoopRunInMode + 123
 27  UIKit                               0x00106add -[UIApplication _run] + 840
 28  UIKit                               0x00108d3b UIApplicationMain + 1225
 29  MyApp                            0x000025fd main + 95
 30  MyApp                            0x00002595 start + 53
 )
libc++abi.dylib: terminating with uncaught exception of type NSException

Пожалуйста, помогите мне.

main.m

#import <UIKit/UIKit.h>

int main(int argc, char *argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");//It highlight this line when exception accoure.
    [pool release];
    return retVal;
}

MainViewController.m

- (void) viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    bannerView_ = [[GADBannerView alloc]initWithAdSize:kGADAdSizeSmartBannerPortrait];

    CGRect screenRect = [[UIScreen mainScreen] bounds];
    CGFloat screenWidth = screenRect.size.width;
    CGFloat screenHeight = screenRect.size.height;
    CGFloat screenXPos = (screenWidth/2);
    CGFloat screenYPos = screenHeight - kGADAdSizeBanner.size.height;
    [bannerView_ setCenter:CGPointMake(screenXPos, screenYPos)];
    bannerView_.adUnitID = MY_BANNER_UNIT_ID;
    bannerView_.rootViewController = self;
    [self.view addSubview:bannerView_];
    GADRequest *request = [GADRequest request];
    request.testing = NO;
    [bannerView_ loadRequest:request];

}

person Pulah Nandha    schedule 21.04.2014    source источник
comment
возможный дубликат [состояние GADSlot]: нераспознанный селектор отправлен экземпляру   -  person Vlad Papko    schedule 21.04.2014
comment
@Visput: - Поскольку я добавил это в вопрос, это не работает для меня.   -  person Pulah Nandha    schedule 21.04.2014
comment
Ваш MainViewController неправильно настроил GADBannerView. Таким образом, он использует объект GADSlot вместо другого класса объектов (который распознает состояние селектора). Если у вас есть исходный код GADBannerView, изучите его и посмотрите, откуда берется ссылка на объект.   -  person Hot Licks    schedule 21.04.2014
comment
Как я уже сказал, я совершенно новичок в разработке iOS, но если вы можете мне помочь, я могу опубликовать код GADBannerView   -  person Pulah Nandha    schedule 21.04.2014
comment
Пожалуйста, опубликуйте код, и я посмотрю, что я могу сделать.   -  person Ricky    schedule 07.05.2014
comment
@ voyage11 :~ Я также добавил код.   -  person Pulah Nandha    schedule 07.05.2014
comment
просто для меня, чтобы убедиться, что вы устали устанавливать флаги других компоновщиков -ObjC как для выпуска, так и для отладки, а также флаг -force_load вместо -ObjC ?   -  person Mingebag    schedule 07.05.2014
comment
У меня есть только -ObjC в флаге компоновщика для всех выпусков, отладки и распространения. и я не использую флаг -force_load.   -  person Pulah Nandha    schedule 07.05.2014
comment
Сколько у вас целей? Вы уверены, что изменили настройки на правильные?   -  person Wain    schedule 12.05.2014
comment
да. Я уверен . я проверил это дважды. прежде чем положить в награду.   -  person Pulah Nandha    schedule 14.05.2014
comment
Где объявляется bannerView_? Вы случайно не имели ввиду _bannerView?   -  person Jon Brooks    schedule 14.05.2014
comment
@JonBrooks я объявил в MainViewController.h файле с именем переменной bannerView_   -  person Pulah Nandha    schedule 14.05.2014


Ответы (1)


Я думаю, GADBannerView настроен неправильно. Если у вас есть источник для GADBannerView, изучите его и посмотрите, откуда берется ссылка на объект. Вы должны попытаться решить эту ошибку в этом направлении.

проверьте также вашу версию admob, потому что GDBBannerview является частью Admob, это может произойти из этого кода. или попробуйте с другой (более старой или новой версией) admob api.

person Vaishali Modi    schedule 14.05.2014
comment
не могли бы вы объяснить, как я могу это сделать? поскольку я новичок в разработке iOS, я понятия не имею, что делать. - person Pulah Nandha; 15.05.2014