写这个是因为需要关联之前客户的信息,而且客户信息的viewmodel、model都复杂了太多,需要减少
//
// ContactViewModel.swift
// yadaService
//
// Created by 小海马 on 2018/6/15.
// Copyright © 2018 . All rights reserved.
//
// 联系人视图模型
import UIKit
import Alamofire
import SwiftyJSON
class ContactViewModel {
//单例:避免重复比沙盒加载归档文件,提高效率,便于被访问到
static let sharedContact=ContactViewModel()
var contactList:[Contact] = []
///返回归档保存的路径 计算型属性(类似于有返回值的函数)
var contactesPath: String {
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory , .userDomainMask, true).last!
return (path as NSString).appendingPathComponent("contactes.plist")
}
}
extension ContactViewModel{
//获取客户的地址信息
func requestContactesInfo(url:String,method:HTTPMethod,parameters:Parameters
,finished: @escaping (_ isSuccess:Bool,_ contactList:[Contact])->()){
request(url,method:method,parameters:parameters).responseJSON{ response in
if response.result.isSuccess{
let value = response.result.value
let result=JSON(value as Any)
let data = result["data"] //取到数组
//请求一次永远只有一组数据
self.contactList=[Contact]()
for index in 0...(data.count-1){
//这里需要-1,因为数据从0开始计数,会多一个出来导致崩溃
let contact:Contact=Contact.init(dict:data[index].dictionaryObject! as [String : AnyObject]);
self.contactList.append(contact) //创建一个数组,但此时还在狄安娜的大地图中,不能直接用
}
finished(true,self.contactList)
}else {
finished(false, [])
}
}
}
//新增
func increaseContactInfo(url:String,method:HTTPMethod,parameters:Parameters
,finished: @escaping (_ isSuccess:Bool,_ contactList:[Contact])->()){
request(url,method:method,parameters:parameters).responseJSON{ response in
if response.result.isSuccess{
finished(true,self.contactList)
}else {
finished(false, [])
}
}
}
//删除
func deleteContactInfo(url:String,method:HTTPMethod,parameters:Parameters
,finished: @escaping (_ isSuccess:Bool,_ contactList:[Contact])->()){
request(url,method:method,parameters:parameters).responseJSON{ response in
if response.result.isSuccess{
finished(true,self.contactList)
}else {
finished(false, [])
}
}
}
}