web-dev-qa-db-ja.com

警告:PaintCodeのコードを使用してObjective-Cクラス情報をロードできませんでした

Paintcodeで生成されたコードを使用してsvgマップを描画しようとしています。シミュレーターを使用して実行すると、コードは正常に機能します。しかし、デバイス(iPad)で実行すると、drawCanvasメソッドでクラッシュし、

警告:Objective-Cクラス情報をロードできませんでした。これにより、使用可能なタイプ情報の品質が大幅に低下します。

警告スクリーンショット

Click here to check the warning Screen Shot

私はストーリーボードにマップを描画しています。ビューにはスクロールビューがあり、その中に1つの画像ビューがあります。 StyleKitClassオブジェクトを1つ追加しました(StyleKitClassはPaintCodeアプリを使用して生成されたNSObjectクラスです)。これをIBOutletコレクションを介してimageViewに接続しました。

コンセント接続

Click here to view Outlet Connections

誰かが知っている場合は、解決策を教えてください。

6
PriyaJain

私はPixelCutで働いており、PaintCodeを作成しています。

プロジェクトを送っていただいた後、iPhone 5sで実行することでこの問題を確認できました。不幸にも、あなたはPaintCode、Xcode およびiOS53千コード行で描画メソッドを使用しようとすることにより、それらの機能の限界まで押し上げています。この単一のメソッドは、バイナリで9 MB必要です(arm64のみ、-Onone)とポインタ型のほぼ1000の変数を使用します。アプリがスタックメモリサイズの制限に達し、システムによって終了されたと推測します。

これまでに1万行を超えるStyleKitsを見てきましたが、どれも単一のメソッドこれほど大きいものはありませんでした。描画をいくつかのキャンバスに分割し、シンボルを使用してそれらを合成することをお勧めしますが、そのような巨大な描画での作業は非常に遅くなる可能性があります。

6
Tricertops

最近私に起こったのは、ViewController.Swiftのコードでファイル名を誤って入力したことです。

0
eplazai

@objc使用する関数の前に、次のように:

@objc func myFunction() {

Objective Cの相互運用性について詳しくは、こちらをご覧ください https://developer.Apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithObjective-CAPIs.html

0
ScottyBlades