Я пытаюсь реализовать 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
Вы пытались включить ARC? 'слабый' может использоваться только с ARC (нет мусора в iOS) –
@Matthias Bauch да, это будет звучать глупо, но как это сделать? и, пожалуйста, объясните свою цитату – user2459150
В меню Edit -> Refactor Xcode есть пункт меню «Преобразовать в Objective-C ARC». Но прежде чем делать это, вы должны воспитывать себя в ARC, это может вызвать проблемы с вашим существующим кодом. Если вам нравится придерживаться модели ручного выпуска, замените 'weak' на' assign'. –