iOS開発用のDynamic-by-defaultメソッドルックアップがSwiftで廃止されました。これにより、エージェントのデフォルトのメソッドインスツルメンテーションが中断されます。例えば、Swift クラスのインタラクショントレーシングはデフォルトでは無効になっていますが、再度有効にすることができます。
Swiftアプリでのインタラクションは、 自動的にインスツルメンテーションされたクラスとメソッド が使用されている場合、またはカスタムのインタラクションを定義する場合にキャプチャされます。しかし、Swiftクラスがこれらのデフォルトクラスのいずれかのサブクラスを作成する場合は、インタラクションをキャプチャするために以下の手順に従います。
ダイナミック・メソッド・ルックアップの有効化
Swiftでメソッドごとに動的なメソッド検索を再度有効にするには、 dynamic
宣言修飾子を追加します。例えば、以下のようになります。
class MyViewController : UIViewController { override dynamic func viewDidLoad() { super.viewDidLoad() ... }}
New Relic が自動的に計測するすべての関数について、 、Swift でサブクラスやオーバーライドを作成するたびに、必ずこの修飾子を追加してください。
Swiftのインストゥルメンテーションを有効にする
dynamic
キーワードをメソッドのオーバーライドに追加した後、以下のメソッドを呼び出すことで、Swiftのインスツルメンテーションを再度有効にすることができます。
言語 | 手順 |
---|---|
Objective-C | Call prior to
|
Swift |
|