2013-07-15 4 views
0

Я пытаюсь реализовать iAD в одном из моих контроллеров представления и после написания кода для файлов .h и .m .... я получаю эту семантическую ошибка выпуска:предложения о том, как я могу решить эту ошибку «Semantic Issue»

@synthesize of 'weak' property is only allowed in ARC or GC mode 

Я специально получаю эту ошибку рядом с @implementation файла .m. любые предложения о том, как я могу решить это, очень ценятся.

ТАКЖЕ Мне было интересно, можно ли скопировать и вставить этот рекламный блок (после его работы) с этого диспетчера представлений на другие контроллеры представлений с повторным кодированием?

Это мой код для ОВР в файле .h

#import <UIKit/UIKit.h> 
#import <iAd/iAd.h> 

@interface ViewController : UIViewController <ADBannerViewDelegate> 
@property (weak, nonatomic) IBOutlet ADBannerView *banner; 

@end 

Это мой код для ОВР в .m файл

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
self.banner.delegate = self; 
} 

- (void) viewDidLayoutSubviews { 
if (self.banner.bannerLoaded) { 
    CGRect contentFrame = self.view.bounds; 
    CGRect bannerFrame = self.banner.frame; 
    contentFrame.size.height -= self.banner.frame.size.height; 
    bannerFrame.origin.y = contentFrame.size.height; 
    self.banner.frame = bannerFrame; 
} 
} 

- (void)didReceiveMemoryWarning 
{ 
[super didReceiveMemoryWarning]; 
// Dispose of any resources that can be recreated. 
} 

- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication: (BOOL)willLeave 
{ 
NSLog(@"bannerViewActionShouldBegin"); 
return YES; 
} 

- (void)bannerViewDidLoadAd:(ADBannerView *)banner 
{ 
NSLog(@"bannerViewDidLoadAd"); 
} 

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error 
{ 
NSLog(@"didFailToReceiveAdWithError"); 
} 

- (void)bannerViewActionDidFinish:(ADBannerView *)banner { 
NSLog(@"bannerViewActionDidFinish"); 
} 

@end 
+0

Вы пытались включить ARC? 'слабый' может использоваться только с ARC (нет мусора в iOS) –

+0

@Matthias Bauch да, это будет звучать глупо, но как это сделать? и, пожалуйста, объясните свою цитату – user2459150

+1

В меню Edit -> Refactor Xcode есть пункт меню «Преобразовать в Objective-C ARC». Но прежде чем делать это, вы должны воспитывать себя в ARC, это может вызвать проблемы с вашим существующим кодом. Если вам нравится придерживаться модели ручного выпуска, замените 'weak' на' assign'. –

ответ

1

Вы можете включить ARC, перейдя для редактирования нажатия Refactor и преобразования в Objective-C ARC.