Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何将两个值中的一个值添加到swift中的参数键?_Json_Swift_Dictionary_Button - Fatal编程技术网

Json 如何将两个值中的一个值添加到swift中的参数键?

Json 如何将两个值中的一个值添加到swift中的参数键?,json,swift,dictionary,button,Json,Swift,Dictionary,Button,我的AddEventViewController包含两个按钮1)PublishEvent 2)DraftEvent 在这里,如果我单击publisheventBtn,则事件应显示在publish段中。。若我单击DraftBtn,那个么事件应该转到draft段 为此,我有如下JSON参数:这里如何根据按钮更改状态键值单击表示如果我单击PublishEvent,那么我必须给出status=“Publish”,如果我单击draftButn,那么status=“Draft” 剩余代码: func Add

我的AddEventViewController包含两个按钮1)PublishEvent 2)DraftEvent

在这里,如果我单击publisheventBtn,则事件应显示在publish段中。。若我单击DraftBtn,那个么事件应该转到draft段

为此,我有如下JSON参数:这里如何根据按钮更改
状态
键值单击表示如果我单击PublishEvent,那么我必须给出
status=“Publish”
,如果我单击draftButn,那么
status=“Draft”

剩余代码:

func AddEvent(){

let request = NSMutableURLRequest(url:url! as URL,
                                  cachePolicy: .useProtocolCachePolicy,
                                  timeoutInterval: 10.0)
request.httpMethod = "POST"
        if httpResponse!.statusCode == 200 {
            do {
                let jsonObject  = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String :AnyObject]
               let viewController = self.storyboard?.instantiateViewController(withIdentifier: "EventsViewController") as! EventsViewController
                viewController.eventType = "Published"
                self.navigationController?.pushViewController(viewController, animated: true)
                }
            }
            catch  {
                print(error.localizedDescription)
            }
        }
        else {
            self.showAlert(title: "", message: "Please enter vaild details")
        }
    }
})
dataTask.resume()
}


@IBAction func publishNewEvent(_ sender: Any) {

    addNewEvents()
}
@IBAction func draftEvent(_ sender: Any) {

addNewEvents()
}

您可以使用三元运算符
状态变量赋值,并根据条件为其赋值

let status = didClickDraftButton ? "Draft" : "Publish"
let parameter = ["status": status, ...]

相应地设置
didClickDraftButton
的值。下面是一个例子:

var didClickDraftButton = true // default value or could use optional if you want

@IBAction func publishNewEvent(_ sender: Any) {
    didClickDraftButton = false
    addNewEvents()
}
@IBAction func draftEvent(_ sender: Any) {
    didClickDraftButton = true
    addNewEvents()
}

这里的
didClickDraftButton
didClickDraftButton
是一个
Bool
。单击草稿按钮时设置
true
,否则设置
false
。您能否演示如何在不使用
didClickDraftButton
的情况下将两个值中的一个值添加到状态中?我不确定您要的是什么。此外,不使用
didClickDraftButton
属性的原因是什么?也就是说,对于
EventsViewController
这里我需要通过草稿或发布,对吗?然后只有JSON api在Swift中使用
eventType
不相关,但不使用
NSMutableURLRequest
NSURL
。JSON字典值决不是
AnyObject
,而是
Any
。如果所需的类型是集合类型,则
.allowFragments
是无意义的。名称总是以小写字母开头。@vadian,谢谢。。我会记住这些话
var didClickDraftButton = true // default value or could use optional if you want

@IBAction func publishNewEvent(_ sender: Any) {
    didClickDraftButton = false
    addNewEvents()
}
@IBAction func draftEvent(_ sender: Any) {
    didClickDraftButton = true
    addNewEvents()
}