2015-11-05 18 views
41

Hata Ağ işlemi için hızlı bir şekilde işlemek için Alamofire kullanıyorum ve bir tuhaf hataya. Metodu enum parametresi olarak geçemeyiz gibi görünüyor.
nesne türü arama için modülü belirtmek gerekir'Metodu', bu bağlamda tür arama için belirsiz, Alamofire

enter image description here

private func apiRequest(method: Method, url: String, apiData: [String : AnyObject], completion:(finished: Bool, response: AnyObject?) ->Void) { 

    Alamofire.request(method, url, parameters: apiData).responseJSON{ response in 
     if let JSON = response.result.value { 
      completion(finished: true, response: JSON) 
     } else { 
      completion(finished: false, response:nil) 
     } 
    } 
} 
+1

Nitelikli ad kullanın, örn. Bir isim çarpışması varsa 'Alamofire.Method'. Bunu zaten 'request' fonksiyonu için yapıyorsun. – Sulthan

cevap

60

[hata Yöntemi parametresi üzerinde]. Ara Alamofire.Method

10

Muhtemelen bir isim çarpışması var. Bunu çözmek için, (modül adı dahil) enum nitelikli adını kullanabilirsiniz:

private func apiRequest(method: Alamofire.Method, ... 
0

Bunun cevabı inşa hatayı düzeltmek yaptı iken; Benim durumumda, uyarıyı gösteren dosya iki farklı çerçevede idi, bu yüzden Xcode nereye bakılacağını bilmiyordu. Bu, dahili çerçevelerimizin amaçlanan davranışı değildi, bu yüzden artık istemediğim kopyayı çıkardım.

1

Uygulamanızda iki veya daha fazla yerde bildirilmiş bir sınıfınız olabilir. Hata, bu sınıfı kullanmanın kesin bir yolu olmadığını söylüyor çünkü kodda bildirilen birkaç farklı yer var. Ben protokolün aynı isimde bir dizi ilan ettiler çünkü

3

Ben de, bu sorunla karşılaşmış:

protocol SomeProtocol { 
    static func someTypeMethod() 
} 

protocol SomeProtocol { 
    init(someParameter: Int) 
} 

protocol SomeProtocol { 
    var mustBeSettable: Int { get set } 
    var doesNotNeedToBeSettable: Int { get } 
} 
0

tip Method iki ithal modüllerde bildirildi. Modülü kullanacağınız modülü belirtmeniz gerekir. Method yerine Alamofire.Method kullanın.

İpucu: Sık sık türü kullanıyorsanız, size modülünde bir tip takma adı oluşturabilirsiniz (uygulama):

typealias Method = Almofire.Method 

Artık Almofire. ile türünü önüne gerekmez Bu şekilde .