如何在 Swift 中向 Data 实例添加描述

ray*_*eja -2 ios swift

我想为我的Data实例添加描述,以便我知道它们的用途。
例如:“此数据用于 (user.name) 的个人资料图片”或“此数据是编码的用户实例”等。

我正在浏览Data实例可用的属性,看到有一个descriptionanddebugDescription属性。我试图为这些属性设置值,但似乎我不能,因为它们是 get-only 属性。有没有其他方法可以向Data实例添加描述?

编辑:Data按照下面的建议 包装实例是一个很好的解决方案,但如果有一种方法可以在不使用包装器的情况下实现相同的效果,请告诉我。

Tar*_*agi 6

您可以创建一个轻量级的包装器,如下所示 -

import Foundation

struct DescriptiveData: CustomStringConvertible, CustomDebugStringConvertible {
    let data: Data
    let customDescription: String?
    
    init(data: Data, customDescription: String? = nil) {
        self.data = data
        self.customDescription = customDescription
    }
    
    var description: String { customDescription ?? data.description }
    var debugDescription: String { description }
}
Run Code Online (Sandbox Code Playgroud)

用法

let data = DescriptiveData(data: Data(), customDescription: "data for profile picture")
print(data)
// data for profile picture
Run Code Online (Sandbox Code Playgroud)