2017-10-14 1 views
-3

에서 값을하는 방법은 여러 차원나는 때문에 그것을하지 수 <code>NSMutableDictionary</code>에서 값을 받으려고 오전 NSMutableDictionary

{ 
    "seleted_days" =  (
     TUE, 
     WED 
    ); 
    timings =  (
       (
     ), 
       (
     ), 
       (
         { 
       "close_time" = "05:00 AM"; 
       "open_time" = "02:00 AM"; 
       timelist = "02:00 AM , 03:00 AM , 04:00 AM , 05:00 AM"; 
       timestat = "1,0,0,1"; 
      } 
     ), 
       (
         { 
       "close_time" = "05:00 AM"; 
       "open_time" = "02:00 AM"; 
       timelist = "02:00 AM , 03:00 AM , 04:00 AM , 05:00 AM"; 
       timestat = "1,0,0,1"; 
      } 
     ), 
       (
     ), 
       (
     ), 
       (
     ) 
    ); 
} 

NSMutableDictionary

에서 열린 시간 가까운 시간을 얻기 위해 필요

내 노력 코드

let array:NSArray = myretrievedic.value(forKey: "timings") as! NSArray 
      for i in 0...array.count 
      { 

      let subArray:NSArray = array.object(at: i) as! NSArray 
      if let dict:NSDictionary = subArray.object(at: 0) as! NSDictionary 
      { 

      let close_time:String = dict.value(forKey: "close_time") as! String 
      let open_time:String = dict.value(forKey: "open_time") as! String 


      print(open_time) 
      print(close_time) 
      } 

널 (null)이 올 때 문을하지 말자 경우 것이 왜 statements.i 이해가 안 해주면 내가 넣어 경우에도 충돌한다 작업

+2

이 시도 코드를 제시해주십시오 인코딩으로 JSON 문자열입니다, 내가 대신 나는 열려있는 모든 시간을 얻을 필요가 빠른 네이티브 사전 형식 – 3stud1ant3

답변

-1
let dictionary:NSMutableDictionary = NSMutableDictionary() 

    let array:NSArray = dictionary .value(forKey: "timings") as! NSArray 


    for i in 0...array.count 
    { 
     let subArray:NSArray = array.object(at: 2) as! NSArray 

     if subArray.count > 0 { 

      let dict:NSMutableDictionary = subArray.object(at: 0) as! NSMutableDictionary 

      let close_time:String = dict.value(forKey: "close_time") as! String 
      let open_time:String = dict.value(forKey: "open_time") as! String 
     } 
    } 
+0

를 사용, 신속한에서'NSMutableDictionary'을 사용하지 않도록해야한다고 생각하고 마감 시간 –

1

키의 값 timings은 배열의 배열입니다.

이것은 Swift 네이티브 콜렉션 유형만을 사용하는 네이티브 스위프트 솔루션입니다. 여기에는 JSON을 deserialize하는 행이 포함됩니다. dataData UTF8이

do {  
    if let root = try JSONSerialization.jsonObject(with: data) as? [String:Any], 
     let timings = root["timings"] as? [[Any]] { 
     for timing in timings where !timing.isEmpty { 
      if let times = timing.first as? [String:String] { 
       let openTime = times["open_time"]! 
       let closeTime = times["close_time"]! 
       print(openTime, closeTime) 
      } 
     } 
    } 
} catch { 
    print(error) 
} 
관련 문제