私は、次のスウィフトコードがあります。_convertNSDictionaryToDictionary <A、B where ...>(NSDictionary?) - > [A:B]なぜアプリケーションがクラッシュするのですか?
class ThingChecker {
static func checkThing() -> [String: [String]] {
return Thing.stringsDictionary()
}
}
Thing
は、次のインターフェイスでのObjective-Cで実装クラスである:
@interface Thing : NSObject
+ (NSDictionary<NSString *, NSArray<NSString *> *> * _Nonnull)stringsDictionary;
@end
しかし、私は私のアプリを実行し、ThingChecker.checkThing()
を呼び出して、私のアプリを次のエラーでクラッシュします。
EXC_BAD_INSTRUCTION (code=EXC_i386_INVOP, subcode 0x0)
コンソールに何も表示されません。それはちょうど(lldb)
を示しています。
見ても、リモートで便利な唯一のものは、デバッガのスタックトレースに含まれています。スタック内に2つのフレームがあり、少し手がかりが出るかもしれません。まず、あるちょうど私のコードの下:
_convertNSDictionaryToDictionary<A, B where ...> (NSDictionary?) -> [A : B]
そして、ちょうどその下に、私は以下を参照してください。
_arrayForceCast<A, B> ([A]) -> [B]
しかし、これらのいずれかをクリックするだけでアセンブリコードを指します。
ここでは何が起こっていますか?このクラッシュの原因は何ですか?私は完全に困惑している。