自我指称结构在客观C中是可能的。例如:
body{
min-height: 2000px;
}
#insertNav{
width: 100%;
max-height: 200px;
background-color: #F0F;
}
快速转换看起来像
typedef struct Sample {
struct Sample* first;
struct Sample* second;
struct Sample* third;
} SampleStruct;
但它会抛出一个编译器错误,说“"值类型'样本'不能拥有引用自身的存储属性"。
如何将自引用结构转换为swift?
答案 0 :(得分:3)
你知道你无法在Objective-C中定义这种结构。
typedef struct Sample {
struct Sample first;
struct Sample second;
struct Sample third;
} SampleStruct;
(Swift为每个Optional添加了一个隐藏的isNil...
字段,但这并没有太大区别。)
如果要定义与Objective-C代码完全等效的内容,则需要使用指针,就像在原始代码中一样。
struct Sample {
var first: UnsafeMutablePointer<Sample>?
var second: UnsafeMutablePointer<Sample>?
var third: UnsafeMutablePointer<Sample>?
}
最好考虑使用类作为评论。