Tôi có một ứng dụng (chỉ ios5) bên trong một phương thức khai báo biến yếu được sử dụng bên trong khối để tham chiếu một thể hiện một bộ điều khiển xem.Cảnh báo tham chiếu biến cố định __weak mục tiêu-C không được chỉ định trên biến tự động "
QRCodeViewController * __weak weakSelf = self;
Vấn đề là trình biên dịch cho thấy một cảnh báo nói:
__weak thuộc tính không thể được xác định trên cơ tự động biến
Trong ứng dụng mà tôi đã sử dụng rất nhiều tài liệu tham khảo yếu và tôi chưa bao giờ thấy một cảnh báo như vậy, sự khác biệt duy nhất từ các lớp khác là lớp này được thực hiện trong một tệp .mm vì nó sử dụng đối tượng C++ và dự án không thể biên dịch nếu tôi để nó như là một .m.
Tôi phải nói rằng mã có vẻ hoạt động tốt.
Bất kỳ đề xuất nào?
nên không nó được '__weak QRCodeViewController * weakSelf = tự;'? –
@Martin hoặc là một tác phẩm, chúng tương đương nhau, cách của bạn là cách tôi thấy được sử dụng thường xuyên hơn, nhưng cách của Andrea là một trong những khuyến cáo của Apple. –
Câu hỏi tương tự: http://stackoverflow.com/questions/10431110/nested-blocks-and-references-to-self. Trả lời rằng mục tiêu triển khai đã được đặt thành 4.0, nhưng đó không phải là trường hợp của bạn. Chính xác? –