0
我有以下映射類。你會看到我使用ObjectMapper
和RealmSwift
,因爲我想在Realm中保存這個類。使用通用函數
import Foundation
import ObjectMapper
import RealmSwift
class LoginResponse: Object,Mappable {
dynamic var status: Int = 0
dynamic var client: LoginData!
required convenience init?(_ map: Map) {
self.init()
}
func mapping(map: Map) {
client <- map["client"]
status <- map["status"]
}
}
現在我有以下功能:
public func login(email: String, password: String) -> LoginResponse {
let request = RestoryApiRequest.login(email, password: password)
return request.toObjectMapper()
}
下面你看到的APIRequest類:
import Foundation
import Alamofire
import ObjectMapper
import AlamofireObjectMapper
import RealmSwift
struct ApiRequest {
let method: Alamofire.Method
let path: String
let parameters: [String: AnyObject]?
let uiRealm = try! Realm()
init(method: Alamofire.Method = .GET, path: String, parameters: [String: AnyObject]? = nil) {
self.method = method
self.path = "webservice/abc123/client/\(path)"
self.parameters = parameters
}
func toObjectMapper<T: Mappable>() -> Object {
let alomofireApiRequest = AlamofireApiRequest(apiRequest: self)
Alamofire.request(alomofireApiRequest)
.responseObject("") { (response: Response<T, NSError>) in
let parsedObject = response.result.value as! Object
try! self.uiRealm.write({() -> Void in
self.uiRealm.add(parsedObject)
})
return parsedObject
}
}
}
瀝你看,我想通過可映射類,並給予對象類返回。但是,這給出了以下編譯器錯誤:
Generic parameter 'T' is not used in function signature
Unexpected non-void return value in void function
有人可以幫助我嗎?如果您需要更多信息,請詢問!
第一個錯誤是從消息不夠清晰。編譯器如何識別T是什麼?你應該有與T有關的參數和/或返回值。第二個是因爲你返回了parseObject,你不應該這樣做。迴應 in相當於迴應 - >無效...所以你應該從封閉中不返回任何東西 –
user3441734