iAd сбой в 3.2 - PullRequest
       21

iAd сбой в 3.2

0 голосов
/ 29 апреля 2011

Я заметил, что мой iAd вызывает сбой в iOS 3.2.У меня слабая ссылка в настройках сборки.Сбой в моем методе createAdBanner

NSString *contentSize;

if (&ADBannerContentSizeIdentifierPortrait != nil) {
    contentSize = UIInterfaceOrientationIsPortrait(self.interfaceOrientation) ? ADBannerContentSizeIdentifierPortrait : ADBannerContentSizeIdentifierLandscape;
}
else {
    contentSize = UIInterfaceOrientationIsPortrait(self.interfaceOrientation) ? ADBannerContentSizeIdentifier320x50 : ADBannerContentSizeIdentifier480x32;
}

Вот ошибка, которая возникает.

This GDB was configured as "x86_64-apple-darwin".sharedlibrary apply-load-rules all
        Attaching to process 4681.
        Assertion failed: (cls), function getName, file /SourceCache/objc4_Sim/objc4-427.1.1/runtime/objc-runtime-new.m, line 3939.
        Assertion failed: (cls), function getName, file /SourceCache/objc4_Sim/objc4-427.1.1/runtime/objc-runtime-new.m, line 3939.
        Current language:  auto; currently objective-c
        (gdb)

Я думал, что вы смогли запустить iAds на 3.2, если вы слабо связаны.Есть идеи или предложения?

Ответы [ 4 ]

3 голосов
/ 29 апреля 2011

http://developer.apple.com/library/ios/#documentation/userexperience/Reference/ADBannerView_Ref/Reference/Reference.html

ADBannerView доступен в версии 4.0 или более поздней.

Вы не сможете показывать рекламу в 3.2

1 голос
/ 29 апреля 2011

Помимо слабых ссылок, вы должны проверить, доступны ли классы объявлений на устройстве. Для этого вы можете использовать следующую команду для проверки существования класса:

Class adClass = NSClassFromString(@"AdBannerView");

if(adClass){
  //ads are available so optionally show them
}else{
  // ads are not available 
}

Чтобы проверить конкретный метод, вы должны использовать это:

BOOL methodExists = [someObject respondsToSelector:@selector(selectorToTestName:)];

if(methodExists){
   //Safe to call selector
}else{
   //The selector doesn't exist in this version of iOS. 
}

Вы также можете просто использовать вышеприведенный оператор, «вставляя» логическую проверку:

if([someObject respondsToSelector:@selector(selectorToTestName:)]){
   //Safe to call selector
}else{
   //The selector doesn't exist in this version of iOS. 
}
0 голосов
/ 29 апреля 2011

используйте ссылку ниже, это дает более ясно даже для использования в ios 3.0+ IAD Tutorial Вы должны импортировать _weak_framework iAd в linkingFlags, который доступен в целях. Как только перейдите по ссылке.

0 голосов
/ 29 апреля 2011

ADBannerView можно использовать в версии 4.0 и выше.Смотри яблочную документацию

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