2011-10-14 18 views
9

Sử dụng ARC, tôi có một tài sản kê khai của các hình thức sau đây:Điều gì sẽ khiến tài sản được khai báo (mạnh) của tôi trở thành nil sau lưng tôi?

@property (nonatomic, strong) MyClass * instanceName; 

tôi đặt tài sản ở ba nơi này - và tôi đã thêm breakpoint cho tất cả ba nơi.

Tôi tham chiếu thuộc tính này ở một số địa điểm.

Khi tôi bước qua mã của tôi, thuộc tính được đặt và không có hai nơi nào khác nơi đặt thuộc tính được gọi. (Như mong đợi).

Tuy nhiên, tại một số thời điểm, giá trị của thuộc tính này đang trở thành không.

Tôi đã thêm một phương thức dealloc vào lớp của mình, với NSLog và điểm ngắt - nhưng nó không bao giờ được gọi (vì vậy nó không giống như được xử lý như tham chiếu yếu zeroing).

Tôi bối rối là tại sao tài sản "mạnh" của tôi sẽ trở thành không có mà không làm cho nó làm như vậy.

Mọi lời khuyên sẽ được đánh giá cao.

Cảm ơn

Trả lời

9

Câu trả lời đơn giản là bạn làm cho nó làm như vậy. Bạn chỉ đơn giản là chưa biết làm thế nào.

Tại một số thời điểm sau khi đã truy cập ivar, nó sẽ hiển thị trong cửa sổ gỡ lỗi của bạn với dấu "i" ở phía trước nó. Nhấp chuột phải vào nó và chọn "Xem ..." Bạn sẽ nhận được một breakpoint mỗi khi bộ nhớ được sửa đổi.

+0

Cảm ơn ... bạn đã đúng. – Steve

Các vấn đề liên quan