swift一个类型申明的小问题

发布于 2022-09-05 03:33:16 字数 359 浏览 25 评论 0

我定一个一个变量是这样的

var siblings:Array<UnsafePointer<Person>>!

现在我想要初始化它为一个含有4个空指针的固定长度数组

siblings=[nil,nil,nil,nil]

为什么这样写会报错?

>  Nil is not compatible with expected element type
> 'UnsafePointer<Person>'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

掩于岁月 2022-09-12 03:33:16

1.固定长度并且默认是nil, 可以用struct实现

struct siblings
{
    var first: Person?
    var second: Person?
    var third: Person?
    var fourth: Person?
}
// 初始化后所有都为nil
var sib = siblings()
// 赋值
sib.first = Person()

2.用元组

var siblings: (Person?, Person?, Person?, Person?) = (nil, nil, nil, nil)
siblings.0 = Person()
siblings.1 = Person()

//或者
var siblings: (first: Person?, second: Person?, third: Person?, fourth: Person?) = (nil, nil, nil, nil)
siblings.first = Person()
天气好吗我好吗 2022-09-12 03:33:16

因为数组siblings内为4个空指针,
则siblings的声明需调整,里面的元素应该是可选类型,

var siblings:Array<UnsafeMutablePointer<Person>?>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文