我正在写一个帮手来包装我的alamofire请求。并且想知道当我从帮助器类接收消息时如何呈现视图控制器,或者如何从我的助手类到我的视图控制器进行通信我应该提供这个alertviewcontroller?
以下是我所拥有的,如果你看到我做错了,请提出建议,因为这是我第一次写api包装。
import UIKit
import Alamofire
import SwiftyJSON
import SVProgressHUD
class AlamoHelper: NSObject {
class func request(method: Alamofire.Method, url: URLStringConvertible, var parameters: [String: AnyObject]? = nil) -> Alamofire.Request {
parameters!["os"] = "ios"
if let versionString = NSBundle.mainBundle().infoDictionary?["CFBundleShortVersionString"] as? String {
parameters!["v"] = versionString
}
SVProgressHUD.showWithMaskType(SVProgressHUDMaskType.Black)
return Alamofire.request(method, url, parameters: parameters, encoding: .JSON)
.responseJSON {
response in
SVProgressHUD.dismiss()
switch response.result {
case .Success:
let json = JSON(response.result.value!)
if let message = json["message"].string {
let alert = UIAlertController(title: json["subject"].stringValue, message: message, preferredStyle: .Alert)
let okAction = UIAlertAction(title: "OK", style: .Cancel, handler: nil)
alert.addAction(okAction)
}
if json["status"].intValue == 401 {
AppDelegate.isLoggedIn = false
AppDelegate.removeCookies()
}
break
case .Failure:
break
}
}
}
}
答案 0 :(得分:0)
试试这个伪代码:
在您的助手类中编写一个接受您的视图的构造函数 控制器对象。
-(void)initWithController:(YourViewController *)_ctr
{
ctr = _ctr;
}
编写一个方法,在视图控制器类中将视图控制器显示为goToNextVc()。
使用从视图控制器获取的同一实例从helper类调用goToNextVc()方法。
答案 1 :(得分:0)
使用delegation将信息从AlamoHelper
传递给来电者UIViewController
。
所以,
AlamoHelper
。AlamoHelper
对象
UIViewController
,将self
设置为AlamoHelper
对象的委托。UIViewController
。AlamoHelper
类返回,就调用委托对象上的协议方法。