2013-08-02 3 views
2

이 같은 내 코드보기로 볼 시작 설명서에 설명 된 링크 : http://help.mopub.com/customer/portal/articles/82831-start-guide아이폰 OS 및 MoPub에서 : 응용 프로그램이 정지 느린 네트워크에 광고를로드 할 때

- (void)viewDidLoad { 
    self.adView = [[MPAdView alloc] initWithAdUnitId:@"xxx" size:MOPUB_BANNER_SIZE]; 
    self.adView.delegate = self; 
    self.adView.frame = CGRectMake(0, self.view.bounds.size.height - MOPUB_BANNER_SIZE.height, MOPUB_BANNER_SIZE.width, MOPUB_BANNER_SIZE.height); 
    self.adView.keywords = keywords; 
    [self.view addSubview:self.adView]; 
    [self.adView loadAd]; 
    [super viewDidLoad]; 
} 

문제는 내가 응용 프로그램을 시작할 때, 그것을 광고를로드 할 viewDidLoad 함수가 시작됩니다. 네트워크가 매우 느리거나 존재하지 않으면 광고를로드하면 앱 실행이 약 20 초 동안 고정됩니다. 이것은 받아 들일만한 행동이 아닙니다. 해결 방법이 있습니까?

답변

1

loadAd 메서드를 타이머에 연결하거나 블록 기반 연결 기능을 사용하는 것이 좋습니다. here에서 접근 가능성을 얻을 수 있습니다.

// in view header file 
NSTimer * aTimer; 

//in implementation 
-(void)viewDidLoad 
{ 
    ... 
    [self.view addSubview:self.adView]; 
    [self.adview setHidden:YES]; 

    [self loadAdIfReachable]; 
    ... 
} 

-(void) loadAdIfReachable{ 
    // Allocate a reachability object 
    Reachability* reach = [Reachability reachabilityWithHostname:@"www.google.com"]; 

    // Set the blocks 
    reach.reachableBlock = ^(Reachability*reach) 
    { 
     NSLog(@"REACHABLE!"); 
     [self.adview setHidden:NO]; 
     [self.adView loadAd]; 

    }; 
}