如何解决无法将弱分配给自定义数组
尝试使自定义数组对象变弱时,出现此错误'weak' may only be applied to class and class-bound protocol types,not '[ExerciseSet]'
。为什么我不能给弱类型分配这种类型?
class Session {
weak var sets: [ExerciseSet]?
}
解决方法
您不能这样做,因为Swift数组是结构而不是类。如果要在Swift中对数组进行弱引用,则需要使用包装器对象,如下所示:
class Wrapper<T> {
let value: T
}
然后将您的课程更改为以下内容:
class Session {
weak var sets: Wrapper<[ExerciseSet]?>
}
话虽这么说,在这里使用弱引用可能没有意义。您的会话可能是单例,也可能是一个对象,该对象一直保留在整个应用程序生命周期的内存中。
除非您实际上需要知道是否设置了该属性,否则还可以使用[ExerciseSet]
而不是使其成为可选属性,然后在没有任何值时使用空数组。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。