ObjecTips

Swift & Objective-C で iOS とか macOS とか

AdMob SDK 7.2.1 変更点

リリースノートはこちら

https://developers.google.com/mobile-ads-sdk/rel-notes?hl=ja#ios

以前はiOS シミュレータではデフォルトでテスト広告が出ていたのが実際の広告が表示されるようになった。
シミュレーターでテスト広告を表示するにはテストデバイスにシミュレータを指定してやる必要がある。

    GADRequest *request = [GADRequest request];
    request.testDevices = @[kGADSimulatorID];

ちなみにこの kGADSimulatorID という定数はヘッダだと

extern const id kGADSimulatorID;

このようにid型で定義されているけど、クラス名をログ出力してみると __NSCFConstantString で中身は @"Simulator" という文字列になっていた。
よって実装ファイルでは

const id kGADSimulatorID = @"Simulator";

と定義されているはず。id型にした理由はなんだろう。今後中身の実装を変えた時にユーザ提供のヘッダを変更する必要が無いようにかな?