如何在Swift中制作Dyanamic NSDictonary [英] how to make Dyanamic NSDictonary in Swift

查看:224
本文介绍了如何在Swift中制作Dyanamic NSDictonary的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

{
   "QuizId" : "23566656"
   "StartTime":"23:30"
   "EndTime":"23:45"
   "data":[
      {"QuestionID":"131313131","AnswerID":"1233152"},
      {"QuestionID":"131313141","AnswerID":"1233152"},
      {"QuestionID":"131313151","AnswerID":"1233152"},
      {"QuestionID":"131313161","AnswerID":"1233152"},
      {"QuestionID":"131313171","AnswerID":"1233152"},
      {"QuestionID":"131313181","AnswerID":"1233152"},
      {"QuestionID":"131313191","AnswerID":"1233152"},
      {"QuestionID":"131313101","AnswerID":"1233152"},
   ]
}

您好,我想在运行时创建一个 NSDictonary 如上所述。感谢您的任何帮助。

Hello I want to Create a NSDictonary on Runtime which Structure Should Be Like above. any Help Will Appreciated Thanks.

我有解决方案感谢您的努力

小变化我想要
由于我拥有所有这些数据的模态。

Little Change I want to Make As i Have Modal For all Those Data.

    let info = self.playQuizArray[currentQuizIndex] as! playInfo
    let Ainfo = info.answers[indexPath.row] as! AnswerInfo
    let QuesID = info.quizQId
    for i in 0..<playQuizArray.count {
        data.append(["QuestionID": QuesID[i], "AnswerID": playQuizArray[i]]) // For Answer Ainfo.ansID  
    }
    let dic = [
        "QuizId" : "23566656",// info.quizID
        "StartTime" : "23:30",
        "EndTime" : "23:45",
        "data" : data
    ]
    print(dic)

谢谢。

这里是模态

class AnswerInfo: NSObject {

    var ansId  :String? = ""
    var ans    :String? = ""
    var ansImg :String? = ""

    class func infoWith(dict: NSDictionary?) -> AnswerInfo {
        let anInfo = AnswerInfo()
        anInfo.wrapInfo(dict)
        return anInfo
    }


    func wrapInfo(dict: NSDictionary?)  {
        if dict == nil {
            return
        }
        self.ansId     = dict!.objectForKey("answerId")  as? String
        self.ans  = dict!.objectForKey("AnsImage")  as? String
        self.ansImg = dict!.objectForKey("option")    as? String
    }
}

class playInfo: NSObject {

    var quizId :           String? = ""
    var quizQId :          String? = ""
    var quizQuestion :     String? = ""
    var answers = NSArray()



class func  PlayQuizInfo(dict: NSDictionary?) -> playInfo {

let Pinfo = playInfo()
    Pinfo.WrapPlayQuiz(dict)
return Pinfo
}
    func WrapPlayQuiz(dict: NSDictionary?)  {
        if dict == nil {
        return
        }
        self.quizId           = dict!.objectForKey("quizId")    as? String
        self.quizQuestion     = dict!.objectForKey("question")  as? String
        self.quizQId          = dict!.objectForKey("questionId")as? String

        if let answer = dict?.objectForKey("keys") as? NSArray {

        let AnsArray = NSMutableArray()
            for ans in answer {
            let ansInfo = AnswerInfo.infoWith(ans as? NSDictionary)
                AnsArray.addObject(ansInfo)
            }
            self.answers = AnsArray
        }
    }
}


推荐答案

您可以使用swift 字典 [String:AnyObject] code>这个方式而不是 NSMutableDictionary

You can use swift Dictionary [String: AnyObject] this way instead of NSMutableDictionary.

var data = [[String: AnuObject]]()
for i in 0..<questionArr.count {
    data.append(["QuestionID": questionArr[i], "AnswerID": answerArr[i]])
}        
let dic = [
    "QuizId" : "23566656",
    "StartTime" : "23:30",
    "EndTime" : "23:45",
    "data" : data
]
print(dic)

这篇关于如何在Swift中制作Dyanamic NSDictonary的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆