2017-04-09 2 views
0
私はswift3にアップデートしたら

(現在のXcode 8.2とswift3上)swift3辞書制限指令が原因信号に失敗しました:セグメンテーションフォールトを:11

、私が持っているコマンド信号のために失敗した

」このエラー:セグメンテーションフォールト:11"

私は、単一の辞書にkeys & valuesの数が多いので。

私が調べると、辞書にはキーと値が限られていることがわかりました。特定の数以上のキーを追加すると上記のエラーが表示されます。

  • このエラーを解決する最適な方法は何ですか?
  • はどの辞書が複数のキーと値を収容して作るには?

    import Foundation 
    
    open class TranslateDictionary { 
    
        var translateDictionary: [String: String] = [ 
    
         "alphabetic": "one", 
         "categories": "two", 
         "levels": "three", 
         "mlevel1": "four", 
         "mlevel2": "five", 
         "mlevel3": "six", 
         "mlevel4": "seven", 
         "mlevel5": "eight", 
         "mlevel6": "nine", 
    
           //It contain a lot of keys and values not just those above! 
    ] 
    
    
    
        func toArabic(_ label: String) -> String { 
         var arabic = translateDictionary[label] 
    
         if (arabic == nil) { 
          arabic = "NoTranslation" 
         } 
    
         return arabic! 
        } 
    } 
    
+0

のように、より多くのSwiftyになりますこれは文字通りの辞書ですか? – Alexander

+0

そのswift3辞書構造は、キーと値 –

+0

どのように多くのキー/値のペアで構成さあなたは挿入しようとしていますか? –

答えて

1

このようなあなたのキーを挿入してみてください。

var translateDictionary: [String: String] = { 
    var translateDictionary = [String: String]() 
    translateDictionary["key1"] = "value1" 
    translateDictionary["key2"] = "value2" 
    ... 
    return translateDictionary 
}() 

あなたは辞書リテラルのサイズ制限を打つ可能性があります。

ところで、あなたのtoArabic機能がこの;-)

func toArabic(_ label: String) -> String { 
    guard let arabic = translateDictionary[label] else { 
     return "NoTranslation" 
    } 
    return arabic 
} 
+0

私の答えはあなたの問題をクリアした場合、私は、あなたの上記のコードを試してみましたが、それは私の第二ラインで期待される宣言を与える---> translateDictionary [「キー1」] =「VALUE1」 –

+0

@NasserAlSnayenあなたがチャンスを取ったときに受け入れられた答えとしてマークするようにしてください...ありがとう! –

関連する問題