寫這個是因爲需要關聯之前客戶的信息,而且客戶信息的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, [])
}
}
}
}