Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iOS/macOS云共享相册中将短数据附加到照片?_Ios_Swift_Metadata_Photo_Shared - Fatal编程技术网

如何在iOS/macOS云共享相册中将短数据附加到照片?

如何在iOS/macOS云共享相册中将短数据附加到照片?,ios,swift,metadata,photo,shared,Ios,Swift,Metadata,Photo,Shared,我正在构建一个应用程序,通过照片应用程序的云共享相册在iOS/macOS用户之间共享照片。我需要每一张照片都由几个数字描述,这些数字带有应用程序特定的参数 我在研究几个想法,但没有一个奏效: 将数字(或字符串)写入EXIF或IPTC元数据字段 不幸的是,苹果云共享相册没有用户可写的元数据字段 在照片文件名中插入数字,例如.JPEG中的IMG_1234-i1-i2- 不幸的是,我无法在照片应用程序中找到更改照片文件名的方法 将整数与照片标识符并行保存在iCloud中,这样就可以使用照片标识

我正在构建一个应用程序,通过照片应用程序的云共享相册在iOS/macOS用户之间共享照片。我需要每一张照片都由几个数字描述,这些数字带有应用程序特定的参数

我在研究几个想法,但没有一个奏效:

  • 将数字(或字符串)写入EXIF或IPTC元数据字段

    • 不幸的是,苹果云共享相册没有用户可写的元数据字段
  • 在照片文件名中插入数字,例如.JPEG中的IMG_1234-i1-i2-

    • 不幸的是,我无法在照片应用程序中找到更改照片文件名的方法
  • 将整数与照片标识符并行保存在iCloud中,这样就可以使用照片标识符在每个设备上检索数据

    • 我假设
      PHObject.localIdentifier
      在不同设备上读取的云共享相册中不是持久的。我没有检查这一点,但为什么要将
      标识符
      称为
      本地

  • 是否有任何有效方法将少量数据绑定到iOS/macOS照片应用程序的云共享相册中的照片?

    以下是我在中找到的私有API的描述,我创建了以下PHAsset扩展:

    extension PHAsset {
        var cloudIdentifier: String {
            return (self.value(forKey: "cloudIdentifier") as? String) ?? "?"
        }
    }
    

    您现在可以从
    PHAsset
    实例获得的
    cloudIdentifier
    在云中的任何共享同一相册的设备上都是持久的。有了持久的阶段集标识符,就可以从最初的问题实现解决方案#3

    可能是在错误的空间发表此评论-但由于看起来您正在向云共享相册添加照片-您认为您可以看一看,因为文档不清楚如何上传到iCloud共享相册?