2014-11-02 19 views
5

Sadece Swift'den öğreniyorum, PHP'den geliyorsunuz. Swift'de iç içe geçmiş diziler yapıp yapamayacağınızı anlamaya çalışıyorum.Swift'de çok boyutlu sözlükler mümkün mü?

$myArray = array(

"motorcycles" => array ("Honda", "Ducati", "Yamaha"), 
"cars" => array(
       "sedans" => array("Jetta", "Taurus", "Impala"), 
       "sport" => array("Porsche", "Ferarri", "Corvette"), 
       "trucks" => array (
           "shortbed" => array("Ford F150", "Dodge Ram 1500"), 
           "longbed" => array(
                "standardCab" => array("Ford F350", "Dodge Ram 2500"), 
                "crewCab" => array("Ford F350", "Dodge Ram 2500") 
                ) 
          ) 
      ) 

); 

cevap

6

Evet, Swift olacağını: Swift beri böyle bir yapıdan

let myArray = [ 
    "motorcycles": ["Honda", "Ducati", "Yamaha"], 
    "cars": [ 
     "sedans": ["Jetta", "Taurus", "Impala"], 
     "sport" : ["Porsche", "Ferarri", "Corvette"], 
     "trucks" : [ 
      "shortbed" : ["Ford F150", "Dodge Ram 1500"], 
      "longbed" : [ 
       "standardCab":["Ford F350", "Dodge Ram 2500"], 
       "crewCab":["Ford F350", "Dodge Ram 2500"] 
      ] 
     ] 
    ] 
] 

Okuma değerleri olsa da, biraz zor olabilir İşte bahsettiğimi bir PHP örnek Türleri ayırt etme zorluğu.

if let trucks = myArray["cars"]?["trucks"] as? [String:AnyObject] { 
    if let standardCab = trucks["longbed"]?["standardCab"] as? [String] { 
     println(standardCab) 
    } 
} 
+0

Teşekkür, ama senin örneğini kullandığınızda bir hata alıyorum: standardCab araç almak için, yapabilirim "Bahçesi yürütme başarısız oldu". Yine de, çevrimiçi bulabildiğim örneklere dayanarak çalışmalı gibi görünüyor. –

+0

Xcode 6.1 ile çalıştım. Xcode'un hangi sürümünü kullanıyorsunuz? Derleyiciye yardımcı olmak için 'myArray''a bir tür eklemeyi deneyin:' let myArray: [String: AnyObject] = [' – vacawama

+0

Ah, buydu. Görünüşe göre benim 6.1 sürümünde bir hata vardı. Son yapıyı yakaladım ve işe yarıyor. Teşekkürler! –