更新履歴については今のところ表示されていないようです。
新規に組み込まれる場合は、SDK に入っているサンプルと Readme.txt を読めば特に問題無く組み込めると思いました。注意点追記しました。
3.3 から 3.4 へ SDK を更新する場合には、以下の点に注意するといいと思います。
- AdMakerView クラスが UIViewController から UIView のサブクラスに変わった。これは 3.1 の時は UIView のサブクラスだったので、一周して結局また元に戻ったということになります。(笑)
- 上記変更により viewWillAppear と viewWillDisappear メソッドが使えなくなるかと思いきや、互換性を重視してかメソッドは残っている。しかしドキュメントには何も記述されていない。
- AdMakerDelegate の didLoadAdMakerView メソッドは、広告が読み込み直される度にコールされるようになった。(これは嬉しい)
- 内部ブラウザで広告を開く場合、AdMaker.useSafari = NO にする。しかし、 requestAdURL:(NSURLRequest*)request メソッドが呼ばれるだけで、それ以外のアクションは起こらない。内部ブラウザは自分で用意せよということなのかも?
- AdMakerView をインスタンス化して start メソッドで開始させてから、インスタンスを解放しようとするとクラッシュする。SDK 添付のサンプルプログラムを改造して確認しました。
ビルド設定の ARC は OFF にします。
設置したボタンをタップすると、AdMakerView をリリースします。
// SingleViewViewController.m - (void)viewDidLoad { [super viewDidLoad]; AdMaker = [[AdMakerView alloc]init]; [AdMaker setAdMakerDelegate:self]; AdMaker.viewController = self; AdMaker.useSafari = YES; AdMaker.backgroundColor = [UIColor clearColor]; [AdMaker setFrame:CGRectMake(0,360,320,50)]; [self.view addSubview:AdMaker]; [AdMaker start]; UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button setTitle:@"end AdMaker" forState:UIControlStateNormal]; button.frame = CGRectMake(85,50,150,40); [button addTarget:self action:@selector(endAdMakerTouched:) forControlEvents:UIControlEventTouchDown]; [self.view addSubview:button]; } - (void)endAdMakerTouched:(id)sender { NSLog(@"endAdMakerTouched"); if (AdMaker) { // 注:この時点でAdMakerのリファレンスカウンタは2になっているので release を忘れないこと! [AdMaker removeFromSuperview]; [AdMaker release]; AdMaker = nil; } }クラッシュに関してはサポートに問い合わせてみるつもりです。
今回の SDK バージョンは iOS 5 に対応したと書いてあったので、もしかしたらインスタンスの解放を Automatic Reference Counting 任せにしているのかもしれません。
とはいえ、すべてのプログラムが ARC の設定を ON にしているわけでもないので、そういう仕様は厳しいのではないかと思いますが、どうでしょうか。
Instrumentsで調べたが、AdMakerをインスタンス化して、解放しなかったまま、メモリリークが発生しないようです。なので、AdMakerViewのメモリ管理はおかしいと思います。
返信削除