Мое приложение не открывается после попытки внедрения iAds!

Я пытался внедрить iAds в свое приложение, но вот что происходит:

1. Нажмите на приложение 2. Экран загрузки отображается в течение нескольких секунд 3. Сбой приложения

Это то, что возвращается:

06.11.2010 20: 19: 11.043 Финал викторины по вампирам [99722: 207] Неизвестный класс AdViewController в файле Interface Builder. 2010-11-06 20: 19: 11.066 Финал викторины по вампирам [99722: 207] - [Vampire_Quiz_FinalViewController setBannerIsVisible:]: нераспознанный селектор отправлен в экземпляр 0x761c710 06.11.2010 20: 19: 11.409 Финал викторины по вампирам [99722: 207] < em> * Завершение работы приложения из-за неперехваченного исключения 'NSInvalidArgumentException',

причина: '- [Vampire_Quiz_FinalViewController setBannerIsVisible:]: нераспознанный селектор отправлен в экземпляр 0x761c710' * Стек вызовов при первом вызове: (0 CoreFoundation
0x02a88b99 exceptionPreprocess + 185 1 libobjc.A.dylib
0x02bd840e objc_exception_throw + 47 2 CoreFoundation
0x02a8a6ab - [NSObject (NSObject) DoesNotRecognizeSelector:] + 187 3
CoreFoundation
0x029fa2b6 __ пересылка
+ 966 4 < br> CoreFoundation
0x029f9e72 _CF_forwarding_prep_0 + 50 5 Финал викторины Vampire
0x000027a2 - [Vampire_Quiz_FinalViewController viewDidLoad] + 601 6 UIKit
0x003715ca - [UIView_Quiz_Final_Application_Final_Vampire_V : didFinishLaunchingWithOptions:] + 74 8 UIKit 0x002c7f27 - [UIApplication _callInitializationDelegatesForURL: полезная нагрузка: приостановлено:] + 1163 9 UIKit 0x002ca3b0 - [UIApplication _runWithURL: payload: launchOrientation: statusBarStyle: statusBarHidden:] + 346 10 UIKit 0x002d43ec - [UIApplication handleEvent: withNewEvent:] + 1958 11 UIKit
0x002ccBevent:] + 1958 11 UIKit
0x002ccBevent:] + 1958 11 UIKit
0x002ccBevent: + [0] 13 GraphicsServices
0x03368822 PurpleEventCallback + 1550 14 CoreFoundation
0x02a69ff4 <сильный> CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION + 52 15 CoreFoundation 0x029ca807 __CFRunLoopDoSource1 + 215 16 CoreFoundation
0x029c7a93 __CFRunLoopRun + 979 17 CoreFoundation
0x029c7350 CFRunLoopRunSpecific + 208 18 CoreFoundation
0x029c7271 CFRunLoopRunInMode + 97 19 UIKit
0x002c9c6d - [UIApplication _run] + 625 20 UIKit
0x002d5af2 UIApplicationMain + 1160 21 Vampire Quiz Final
0x00002144 main + 102 22 Vampire Quiz Финал викторины 0x000020d5 start + 53) terminate вызывается после создания экземпляра общей библиотеки 'NSException' apply-load-rules all (gdb)

P.S. Я новичок в разработке на iPhone

Спасибо

Это мой код:

@implementation Vampire_Quiz_FinalViewController

- (IBAction)V;

{

    Vork *V = [[Vork alloc] initWithNibName:nil bundle:nil];

    [self presentModalViewController:V animated:NO];

}
- (IBAction)A;

{

    About *A = [[About alloc] initWithNibName:nil bundle:nil];

    [self presentModalViewController:A animated:NO];

}
- (IBAction)I;

{

    Instructions *I = [[Instructions alloc] initWithNibName:nil bundle:nil];

    [self presentModalViewController:I animated:NO];

}

- (void)dealloc {
    [super dealloc];
}

- (void)viewDidLoad {

    adView = [[ADBannerView alloc] initWithFrame:CGRectZero];

    adView.frame = CGRectOffset(adView.frame, 0, -50);

    adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50];

    adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;

    [self.view addSubview:adView];

    adView.delegate=self;

    self.bannerIsVisible=NO;

    [super viewDidLoad];

}

- (void)bannerViewDidLoadAd:(ADBannerView *)banner

{

    if (!self.bannerIsVisible)

    {

        [UIView beginAnimations:@"animateAdBannerOn" context:NULL];

        // banner is invisible now and moved out of the screen on 50 px

        banner.frame = CGRectOffset(banner.frame, 0, 50);

        [UIView commitAnimations];

        self.bannerIsVisible = YES;

    }

}



- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error

{

    if (self.bannerIsVisible)

    {

        [UIView beginAnimations:@"animateAdBannerOff" context:NULL];

        // banner is visible and we move it out of the screen, due to connection issue

        banner.frame = CGRectOffset(banner.frame, 0, -50);

        [UIView commitAnimations];

        self.bannerIsVisible = NO;

    }

}



@end

Как исправить ???


person Simon    schedule 06.11.2010    source источник


Ответы (2)


вы используете self.bannerIsVisible, но я не вижу ни синтезатора для этого, ни сеттеров и геттеров. Вы добавили свойство с bannerIsVisible в свой .h файл?

Чтобы устранить этот сбой, вы должны определить свойство в заголовке и добавить оператор @synthesize в свою реализацию.


Возможно, вам стоит начать с чего-то более простого, чтобы познакомиться с фундаментальными вещами, такими как свойства, синтезаторы, предупреждения компилятора (они должны быть), отладка и т. Д.
Я не хочу показаться грубым, но вы победили не многому научишься, используя скопированный код, которого ты не понимаешь.

person Matthias Bauch    schedule 06.11.2010
comment
Да, я добавил свойство в свой файл .h - person Simon; 06.11.2010
comment
#import ‹UIKit / UIKit.h› #import ‹iAd / iAd.h›; @interface Vampire_Quiz_FinalViewController: UIViewController ‹ADBannerViewDelegate› {ADBannerView * adView; BOOL bannerIsVisible; } @property (неатомарно, присваивать) BOOL bannerIsVisible; - (IBAction) V; - (IBAction) A; - (IBAction) I; @конец - person Simon; 06.11.2010
comment
если собственность есть, вы должны добавить @synthesize bannerIsVisible; под @implementation Vampire_Quiz_FinalViewController. Компилятор должен предупредить вас, потому что этого нет. - person Matthias Bauch; 06.11.2010

неопознанный селектор отправлен в экземпляр: это означает, что метод для этого класса не найден. Проверьте реализацию класса.

person Istvan    schedule 06.11.2010