Tôi đang cố gắng tìm ra phương pháp tránh các chu kỳ lưu giữ khi một số tham chiếu trong chu trình được giữ trong bộ sưu tập. Ý tưởng của tôi là tạo ra một wrapper struct
:Buộc tham số kiểu chung là loại lớp?
struct Weak<T> {
unowned let value: T
init(_ value: T) {
self.value = value
}
}
Vấn đề ở đây là unowned
và weak
thành viên phải của một loại lớp (main.swift:3:17: 'unowned' cannot be applied to non-class type 'T'; consider adding a class bound
), nhưng không có lớp cha hợp lý cho tôi để yêu cầu T
kế thừa từ.
Có cách nào để buộc T
thuộc loại lớp mà không kế thừa từ một lớp khác cụ thể không?
Đó làm việc, cảm ơn! Đây có phải là bất cứ nơi nào trong tài liệu hướng dẫn? –
Đúng, đọc phần về generics cho cú pháp của định nghĩa chung. Thực hiện tìm kiếm trong iBook trên AnyObject để biết thêm thông tin về giao thức đó. –