2017-01-12 5 views
1

ここで面白い挑戦だ...ジェネリック医薬品の継承とスウィフトコンパイラ

私たちは、オフィス内のコードすべてUITableViewオブジェクトの管理をautomatiseしようとしているいくつかの仕事上の理由から。あなたが多くのUITableViewオブジェクトを持つアプリケーションを持っている場合、同じデータソーシングパターン、つまりnumberOfRowInSectioncellForRowAtIndexPathなどを繰り返すでしょう...

私はこれについて考えていました。私はこのすべてのデータソースパターンを自動化する方法を見つけました:ジェネリック継承。

コードが長すぎて投稿できないため、GitHub repo hereを作成しました。

コンセプトフォルダーの下でコンセプトがどのように機能するかを示すプレイグラウンドがあります。

フレームワークフォルダの下には、遊び場の概念をSwift Frameworkに変換する非効率的なアプローチがあります。これまでは、Swiftコンパイラのバグが原因で動作しなくなったようです。

LLVM ERROR: Broken function found, compilation aborted! 
2017-01-12 07:37:36.228 xcodebuild[64275:5358071] DVTAssertions: Warning in /Library/Caches/com.apple.xbs/Sources/IDEFrameworks/IDEFrameworks-11766.1/IDEFoundation/Playgrounds/IDEPlaygroundAuxiliarySourceCompilerOperation.m:386 
Details: Unable to read diagnostics from file ".../GenericTableViewController/build/GenericTableViewController.build/Debug-iphoneos/GenericTableViewController.build/Objects-normal/armv7/GenericTableViewController.dia" (Invalid File): Invalid diagnostics signature 
Function: void XCGenerateDiagnosticsFromFile(NSString *__strong, NSString *__strong, NSDictionary *__strong, NSDictionary *__strong, IDEActivityLogSectionRecorder *__strong, BOOL (^__strong)(IDEActivityLogMessage *__strong)) 
Thread: <NSThread: 0x7ffb7c2a3f60>{number = 14, name = (null)} 
Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide. 

同じコードが遊び場の下で動作しますが、標準のXcodeプロジェクトの下でコンパイルされませんので、それはかなり奇妙だ...

ことができます誰:ここではフレームワークをコンパイルしようとしているときに、コマンドラインコンパイラがスローものです貢献しますか?

+0

問題をより詳しく説明するタイトルを選択してください。 – Raphael

+0

メッセージはこれが(潜在的な)バグであることをかなり明確に示しているので、私はその質問が何であるか分かりません。 – Raphael

+0

すでに解決済みです。次の回答を確認してください –

答えて

0

ちょっと調べてみると、正しくコンパイルされました。私は、Build SettingsOptimization Levelが鍵であることを発見しました。

デフォルトでは、デバッグの場合はNoone、リリースの場合はFast, Whole Module Optimizationに設定されています。ここで、デバッグをFast, Whole Module Optimizationに設定すると、デバッグ時にコンパイルされ、上記のコードを使用できます。

共有のためにGitHubリポジトリを更新します。皆さん、ありがとうございました。

詳細情報:https://bugs.swift.org/browse/SR-2565

関連する問題