2016-10-04 79 views
5

Oluşturulan swift-client kullanarak bir görüntü göndermek istiyorum. araştırma bir sürü sonra bu belirtmek için en iyi yol olduğunu düşünüyorum:Oluşturulan swagger kodundan hızlı istemci ile POST görüntüsü

/user/profilepicture: 
    put: 
     description: | 
     upload profile picture of user 
     consumes: 
     - multipart/form-data 
     parameters: 
     - name: profilePhoto 
      in: formData 
      type: file 

oluşturulan hızlı istemci işlevi imzadır:

public class func usersProfilepicturePut(profilePhoto profilePhoto: NSURL? = nil, completion: ((error: ErrorType?) -> Void)) 

ben yaşıyorum sorun NSURL türüdür. Bunun nedeni, fotoğrafın UIImagePickerController ile fotoğraf makinesinden çekilmesi durumunda, NSURL'un UIImage'dan çıkmasının çok zor görünmesidir.

Sonra tekrar parametrenin türünü bir dizgeye dönüştürmek istemiyorum ve bir base64 kodlaması kullanmak çünkü görüntüyü bir dizeye dönüştürmek için çok fazla yük ekler.

  • Birisi yaml özelliklerinin doğru olduğunu doğrulayabilir mi? (Bir dosya yüklemek için kullanabileceğim tek diğer veri türü, Byte biçimindeki dize, ancak fotoğrafı dizgeye dönüştürmek için bir ek yüke neden olacağı için dosya türünü seçiyorum.
  • Gerçekten doğruysa, NSURL'u bir UIImage'dan almanın bir yolu olup olmadığını bilen var mı? Bu ikinci soru var, ancak [Getting the URL of picture taken by camera with Photos Framework'daki yanıt bir URL değil bir dize tanımlayıcısı döndürmez. Ayrıca, benzer soruların diğer cevapları da görüntüyü kaydetmeyi önerir. sonra sadece hacky görünüyor bir NSURL almak için tekrar geri almak. Yani bir NSData türünü kabul etmek üretilen uygulanmasını değiştirebilir veya önermek daha iyi bir şeyin yapmalıyım?
+0

Sorununuzu nasıl çözdünüz? – Malder

cevap

0

Yazım sırasındaki swagger API'sı, yazıya NS64'ü kodlayan Base64 biçiminde görünüyor. Bu nedenle, Base64'ü kullanmak istemiyorsanız ya da swagger tarafından üretilen kodu genişletmek/değiştirmek istemiyorsanız, bundan kaçının.

İkili verileri göndermek için yerel dosyanın NSURL'sine ihtiyacınız var gibi görünüyor.