【发布时间】:2016-11-18 13:10:28
【问题描述】:
我正在调用一项 Web 服务及其数据,我想在项目的任何地方使用它。这是我的网络服务
// MARK: Webservice for Vehicle list
func CallWebServiceForDISCIPLINELIST() -> Void {
let successed = {(responseObject: AnyObject) -> Void in
print(responseObject)
let code = responseObject["status_code"] as? Int
if code == 200{
self.dict_discipline = responseObject as! NSMutableDictionary
NSUserDefaults.standardUserDefaults().setObject(self.dict_discipline, forKey: "Discipline_list")
//HUD.flash(.Success, delay: 2.0)
}else{
UtilityHandler.showAlertWithStatusCode(code!)
// HUD.flash(.Error, delay: 2.0)
}
}
let failure = {(error: AnyObject) -> Void in
print(error)
// HUD.flash(.Error, delay: 2.0)
}
ServiceHandler.callWebserviceToUploadImageWithParams(nil, imgParams: nil, videoParms: nil, action: DISCIPLINE_LIST, success: successed, failure: failure)
}
我制作了一个NSMutableDictionary 的类别文件来获取它的键值对,如下所示。仅供参考-我放了两种密钥和配对方法,我有 20-30 种这样的方法
import UIKit
class CategoryDiscipline: NSMutableDictionary {
func getDisciplineList(arr : NSMutableDictionary) -> NSArray {
let arr : NSArray = arr.valueForKey("discipline_list") as! NSArray
// print(arr)
return arr
}
func getdiscipline_id(arr : NSMutableDictionary, index : NSInteger) -> NSString {
let arr : NSArray = self.getDisciplineList(arr).valueForKey("discipline_id") as! NSArray
let str = arr.objectAtIndex(index)
//print(str)
return str as! NSString
}
func getdiscipline_name(arr : NSMutableDictionary, index : NSInteger) -> NSString {
let arr : NSArray = self.getDisciplineList(arr).valueForKey("discipline_name") as! NSArray
let str = arr.objectAtIndex(index)
//print(str)
return str as! NSString
}
}
直到现在我尝试以下案例
1) 我将它设为extention,返回值为NSMutableDictionary,但它在得到响应之前返回
2) 我将此方法声明为appdelegate 并在didfinishlaunching 方法中调用它,但是当我定向到另一个视图时,值为nil
3) 我将它存储到 NSUserDefaults 中,除了作为数组之外的所有东西,但我的类别文件是 NSMutableDictionary 所以它出现了类型转换的致命错误。
如何在我的整个项目中获得此 Web 服务响应?
【问题讨论】:
-
您是否只使用此网络服务处理数据或其他视图动画?
-
我使用这些数据以不同的形式显示到项目中的操作表中
-
正如我提到的答案,对你没有帮助?
-
我刚开始尝试
标签: ios swift categories nsmutabledictionary