2015-03-10 15 views
7

Có cách nào để nhanh chóng đăng xuất số lượng lưu giữ của đối tượng vào Bảng điều khiển Xcode không? Nếu không, lựa chọn thay thế tốt nhất tiếp theo là gì?Swift: cách đăng xuất giữ lại số lượng đối tượng?

+5

Tại sao bạn cần retainCount? –

+0

Giống như một công cụ giảng dạy. Tôi muốn cho học sinh thấy các chu kỳ giữ vững mạnh mẽ xảy ra như thế nào, và chỉ nói về toàn bộ điều ARC. – sirab333

+0

Đọc chúng trước khi sử dụng phương pháp 'retainCount'. [10 (http://whentouseretaincount.com), [2] (http://stackoverflow.com/questions/4636146/when-to-use-retaincount), [3] (http: //www.friday. com/bbum/2011/12/18/retaincount-is-useless /), [4] (http://stackoverflow.com/questions/5784084/calling-retaincount-considered-harmful), [5 giải thích của Apple về phương pháp retainCount ] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/#//apple_ref/occ/intfm/NSObject/retainCount) –

Trả lời

1

Thông thường bạn sẽ sử dụng công cụ để nhận số lần giữ lại. Nhưng như đã trả lời ở đây, phương thức là retainCount.

How to get the reference count of an NSObject?

+2

'retainCount' không tốt trong Swift. Và nếu không - hãy xem các tài liệu trong phần "Cân nhắc đặc biệt": "Phương pháp này không có giá trị trong việc gỡ lỗi các vấn đề quản lý bộ nhớ. Vì bất kỳ số đối tượng khung nào có thể đã giữ lại một đối tượng để giữ tham chiếu đến nó ..." bạn làm điều đó trong dụng cụ? – sirab333

+0

Đừng mong đợi giữ lạiCount cung cấp cho bạn các giá trị chính xác. Tham khảo các liên kết tôi đính kèm với bình luận của tôi (phần Câu hỏi) –

15

sử dụng chức năng CFGetRetainCount

Ví dụ:

print(CFGetRetainCount(object)) 

đọc thêm ở đây: https://developer.apple.com/reference/corefoundation/1521288-cfgetretaincount

hy vọng hữu ích

+0

Cũng lưu ý rằng trong Swift, 'CFRetainCount' cũng tính tham chiếu của loại 'không xác định', có thể bao gồm các tham chiếu yếu. Tôi đã học được điều này bằng cách tham chiếu chéo giá trị thời gian chạy 'CFGetRetainCount' với công cụ Xcode" Xem đồ thị bộ nhớ phân cấp ". Thêm tại đây: https://koenig-media.raywenderlich.com/uploads/2017/08/visual_memory_debugger.png –

+0

Cảm ơn! Cần phải nhập Quỹ cho nó. – Segev

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