【问题标题】:how do i get ios swift json return function value in another view controller我如何在另一个视图控制器中获取 ios swift json 返回函数值
【发布时间】:2016-10-24 10:23:00
【问题描述】:
  func data_request(){
  let url:NSURL = NSURL(string: url_to_request)!
  let session = URLSession.shared
  let request = NSMutableURLRequest(url: url as URL)
//request.addValue("application/json", forHTTPHeaderField: "Content-Type")
//request.addValue("application/json", forHTTPHeaderField: "Accept")
request.httpMethod = "POST"
request.cachePolicy = NSURLRequest.CachePolicy.reloadIgnoringCacheData
//let paramString = "data=Hello"
let paramStrings = paramString
request.httpBody = paramStrings.data(using: String.Encoding.utf8)
  let task = session.dataTask(with: request as URLRequest) { ( data,   response, error) in
    guard let :NSData = data as NSData?, let :URLResponse = response , error   == nil else {
        // print("error") //
        return //
    }
    let dataString = NSString(data: data!, encoding:          String.Encoding.utf8.rawValue)
    print(dataString)


};

  task.resume()

}

如何在另一个视图中获取返回值数据字符串?我如何传递这个值..我是 ios 的初学者..plshelp ....在此先感谢

【问题讨论】:

标签: ios swift3


【解决方案1】:

使用块你可以做到这一点

对于斯威夫特。使用 AnyObject 作为 id objc 类型。

func callWebservice (serviceName: String, withMethod method: String, andParams params: NSDictionary, showLoader loader: Bool, completionBlockSuccess aBlock: ((AnyObject) -> Void), andFailureBlock failBlock: ((AnyObject) -> Void)) {
    if loader {
        // Show loader
    }

    performRequestWithServiceName(serviceName, method: method, andParams: params, success: aBlock, failure: failBlock)
}

func performRequestWithServiceName(serviceName: String, method methodName: String, andParams params: NSDictionary, success successBlock: ((AnyObject) -> Void), failure failureBlock: ((AnyObject) -> Void)) {
    if callSuceess {
        successBlock("Success")
    }else {
        successBlock(nil)
    }
}

当您想致电web service 时的示例。见下面的代码

callWebservice("your-service-name", withMethod: "your-method", andParams: ["your-dic-key": "your dict value"], showLoader: true/*or false*/, completionBlockSuccess: { (success) -> Void in
    // your successful handle
}) { (failure) -> Void in
    // your failure handle
}

来自:https://stackoverflow.com/a/31491077/3901620

【讨论】:

  • 感谢 KKRocks...但我实际上想要另一个视图控制器中的返回值...我能够在同一个函数中打印它...我如何传递值??
  • 你可以在任何你想要的类中调用这个方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-06
  • 1970-01-01
相关资源
最近更新 更多