【问题标题】:How to add one value from two values to parameter key in swift?如何在swift中将两个值中的一个值添加到参数键?
【发布时间】:2020-08-16 10:09:25
【问题描述】:

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

如果我点击 publisheventBtn,那么事件应该显示在发布段中。如果我点击 DraftBtn,那么事件应该转到草稿段

为此我有如下 JSON 参数: 这里如何根据 buttonclick 更改 status 键值意味着如果我点击 PublishEvent 然后我必须给 status = "Publish" 如果我点击 draftButn 然后status = "Draft"

let parameter = ["status":"Draft", "eventName": eventNameField.text, "eventMessage": msgTextfild.text, "eventDate": Fromdate, "eventTime": fromTime, "eventEndDate": Todate, "eventEndTime": toTime, "isAllDayEvent":"false", "isEventRepeatable":"false"] as [String : Any]

剩余代码:

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()
}

【问题讨论】:

  • 不相关但不要在 Swift 中使用 NSMutableURLRequestNSURL。 JSON 字典值永远不是AnyObject,而是Any。如果预期的类型是集合类型,.allowFragments 毫无意义。并且名称函数总是以小写字母开头。
  • @vadian,谢谢……我会把这些话记在心里

标签: json swift dictionary button


【解决方案1】:

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

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
  • didClickDraftButtonBool。单击草稿按钮时设置true,否则设置false
  • 你能否展示如何在不使用didClickDraftButton 的情况下将两个值中的一个值添加到状态中
  • 我不确定您要的是什么。另外,不使用didClickDraftButton属性的原因是什么?
  • 那是 EventsViewController 这里我需要通过 Draft 或 Published 对吗?那么只有 JSON api 工作 na eventType
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多