Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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
Swift 有没有一种方法可以重用模型本身?_Swift - Fatal编程技术网

Swift 有没有一种方法可以重用模型本身?

Swift 有没有一种方法可以重用模型本身?,swift,Swift,我有一个存储用户(UserModel)好友列表的应用程序。如果一个朋友单击了一个用户,则其类型是相同的类型(UserModel)。在Swift中,它不允许递归使用模型,这给了我以下错误: “值类型'OwnerModel'不能具有递归包含它的存储属性” 有没有办法在ownerFriends下重用OwnerModel?这不行,因为结构是值类型。所以每个OwnerModel里面都必须有一个OwnerModel,里面必须有一个OwnerModel,里面必须有一个OwnerModel。。。。这永远无法解决

我有一个存储用户(UserModel)好友列表的应用程序。如果一个朋友单击了一个用户,则其类型是相同的类型(UserModel)。在Swift中,它不允许递归使用模型,这给了我以下错误:

“值类型'OwnerModel'不能具有递归包含它的存储属性”


有没有办法在ownerFriends下重用OwnerModel?

这不行,因为结构是值类型。所以每个OwnerModel里面都必须有一个OwnerModel,里面必须有一个OwnerModel,里面必须有一个OwnerModel。。。。这永远无法解决。既然您已经标记了这个可编码项,请尝试编写您希望将其编码到的JSON

这就是说,
ownerFriends
似乎是复数形式,这意味着
[OwnerModel]
,这不是问题,因为您可能没有:

struct OwnerModel: Codable {
    ...
    var ownerFriends: [OwnerModel]
}

但是,请再次记住,结构是值类型。所以每个OwnerModel只是一个值。它不是对任何其他对象的引用。如果要引用其他所有者,可能需要存储ID而不是实际对象(或使用类来创建引用)。

这是
Codable
的问题,请参阅最近的一篇文章
struct OwnerModel: Codable {
    ...
    var ownerFriends: [OwnerModel]
}