シミュレータでは再現しないけれど64bitの実機端末でテストすると
クラッシュする箇所がありました。
公式でも既知のようですが、注意点として共有します。
ポインタに関わる部分は注意
Cocoa Touch 64ビット移行ガイド
https://developer.apple.com/jp/documentation/CocoaTouch64BitGuide.pdf
「Objective-Cのポインタに直接アクセスしない」という項目があります。
例えば、64bit対応をするときには下記書き換えを行う必要があります。
注意点としては、公式ドキュメントにもありますが、
シミュレータでは正常動作してしまうので、テスト時は実機で行う必要があることです。
Objective-C
// メソッドへ対応する関数へのポインタを利用して関数を呼び出す記法
IMP func = [catClass methodForSelector:@selector(eat:)];
BOOL ret = (*func)(catClass, @selector(eat:), fish);
Objective-C
// 通常の引数付きメッセージ送信による記法
BOOL ret = [catClass eat: fish];
参考URL
- ダイナミックObjective-C (22) メソッドとは何か(5) - メソッドの実装