Ios 根据生成的招摇过市代码与swift客户端发布图像

Ios 根据生成的招摇过市代码与swift客户端发布图像,ios,swift,swagger,Ios,Swift,Swagger,我想使用生成的swift客户端发布一个图像。经过大量研究,我认为最好的方法是: /user/profilepicture: put: description: | upload profile picture of user consumes: - multipart/form-data parameters: - name: profilePhoto in: formData

我想使用生成的swift客户端发布一个图像。经过大量研究,我认为最好的方法是:

/user/profilepicture:
    put:
      description: |
        upload profile picture of user
      consumes:
        - multipart/form-data
      parameters:
        - name: profilePhoto
          in: formData
          type: file
生成的swift客户端功能签名为:

public class func usersProfilepicturePut(profilePhoto profilePhoto: NSURL? = nil, completion: ((error: ErrorType?) -> Void))
我遇到的问题是
NSURL
类型。原因是从
UIImage
中获取
NSURL
似乎非常困难,特别是如果照片是用
UIImagePickerController
从相机拍摄的

同样,我不想将参数的类型更改为字符串,而使用base64编码,因为将图像转换为字符串会增加很多开销

  • 有人能验证我的yaml规范是正确的吗?(我选择文件类型,因为我可以用来上传照片的唯一其他数据类型是字符串,带有格式字节,但这会导致将照片转换为字符串的开销。)
  • 如果确实正确,是否有人知道是否有办法从
    UIImage
    获取
    NSURL
    。第二个问题存在,但答案是[不返回URL,但返回字符串标识符。对于类似问题的其他答案都建议保存图像,然后再次检索图像,以获得一个
    NSURL
    ,这似乎有点骇人听闻。 因此,我应该将生成的实现更改为接受
    NSData
    类型,还是您有更好的建议

在撰写本文时,swagger API似乎是将NSData编码到post中的Base64。因此,如果您不想使用Base64或不想扩展/修改swagger生成的代码,请避免这样做


要发送二进制数据,您似乎需要本地文件的NSURL。

您是如何解决此问题的?