2017-11-15 17 views
5
private func makeRequest<T where T:MappableNetwork>(method method: Alamofire.Method, url: String, 
         parameters: [String: AnyObject]?, keyPath: String, handler: NetworkHandler<T>.handlerArray) -> Request { 

    let headers = [ 
     "Authorization": "", 
     ] 

    return Alamofire 
     .request(method, url, parameters: parameters, encoding: .URL, headers: headers) 
     .validate() 
     .responseArray(keyPath: keyPath) { (response: Alamofire.Response<[T], NSError>) in 
      if let error = response.result.error { 
       if let data = response.data { 
        let error = self.getError(data) 
        if error != nil { 
         handler(.Error(error: error!)) 
         return 
        } 
       } 
       handler(.Error(error: error)) 
      } else if let objects = response.result.value { 
       handler(.Success(data: objects)) 
      } 
    } 
} 

Tôi chuyển đổi mã nhanh chóng 2.x thành 3.x và nhận được lỗi Biểu thức loại là mơ hồ mà không có ngữ cảnh nhiều hơn.Swift 3.0: Loại biểu thức là mơ hồ mà không có ngữ cảnh nhiều hơn?

enter image description here

+0

Người xử lý mong đợi điều gì? Bạn bắt đầu với một khoảng thời gian (.) Và nó không thể được xác định tự động trong trường hợp đó, những gì nên được trước khi thời gian? – Yitzchak

+0

ok Tôi hiểu ý của bạn. hãy thử điều đó. thanks @Yitzchak –

+0

Đã làm việc? Tôi có thể đăng câu trả lời không? Chia sẻ với chúng tôi chính xác những gì đã mất tích? – Yitzchak

Trả lời

1

Các lỗi bạn đề cập đến nói với bạn rằng trình biên dịch không thể xác định chính xác loại giá trị mà bạn nhập vào.

Bạn bắt đầu với một khoảng thời gian, thứ gì đó phải tồn tại trước kỳ. Đôi khi trình biên dịch có thể hiểu mà không cần sự giúp đỡ của bạn. Đó không phải là trường hợp này, nó có một số tùy chọn để nó mơ hồ và nó yêu cầu bạn nói chính xác tên lớp mà bạn muốn nói.

Nó sẽ giúp người khác nếu bạn đặt tên lớp chính xác bị thiếu.

Các vấn đề liên quan