Duyệt bởi
Tag: iOS

Runloop

Runloop

Có một thành phần rất quan trọng đóng vai trò trái tim của App trong iOS, đó chính là runloop. Cũng như tên gọi của nó, runloop là một vòng lặp ở thread sử dụng để chạy các trình xử lý sự kiện để đáp ứng các event được gửi đến. Nó giống như một hộp thư mà sẽ đợi thông điệp với và gửi tới đúng chỗ nhận thông điệp đó. Một runloop cơ bản có thể như sau:…

Đọc Thêm Đọc Thêm

Retain count được lưu trữ như nào

Retain count được lưu trữ như nào

Chắc hẳn có nhiều bạn cũng như mình, thắc mắc không biết objective-C lưu trữ retain count như nào. Hôm nay chúng ta sẽ mổ sẻ open source objc4 xem retain count được lưu như nào. Đầu tiên chúng ta xuất phát từ implement của method -[NSObject retainCount] xem retain count được lưu ở đâu. Ta thấy nó gọi tiếp hàm C++ rootRetainCount. Ta tiếp tục xem nó làm gì tiếp. Apple define 2 hàm rootRetainCount. Một hàm sử dụng…

Đọc Thêm Đọc Thêm

ARC hoạt động như nào

ARC hoạt động như nào

Chào các bạn, chắc hẳn các bạn cũng nghe nhiều về tính năng này rồi, nhưng đôi khi nhiều người cũng chỉ biết tính năng này để quản lý bộ nhớ thôi. Thì nay mình sẽ viết bài để giải thích xem nó thực sự làm gì. Bài viết này mình không nói về cách code dùng ARC như nào, mà chỉ tập trung vào cách ARC hoạt động ra sao. 1. ARC là gì ARC là viết tắt của…

Đọc Thêm Đọc Thêm

Autorelease Pool

Autorelease Pool

Gần đây mình khá tò mò về chủ đề này, nên mình quyết định tìm hiểu kỹ về nó. Sau khi đã thoả mãn sự tò mò thì nay mình viết bài chia sẻ về nó. 1. Bối cảnh Bạn nào lập trình từ hồi non-arc thì sẽ rõ về autorelease pool hơn các bạn lập trình thời arc. Cùng xét ví dụ sau khi dùng non-arc, thời mà vẫn dùng retain, release bằng tay thay vì ARC(Automatic Reference Counting)…

Đọc Thêm Đọc Thêm

Tản mạn về [weak self]

Tản mạn về [weak self]

Từ hồi vào project swift vào năm 2018 thì thấy anh em dân dev rất hay dùng bừa một tính năng nào đó để fix(kiểu fix triệu chứng) mà không hiểu rõ tại sao lại dùng như vậy. Và còn có một anh không nắm rõ quản lý bộ nhớ nên rất sợ vấn đề retain cycle trong iOS. Vậy nên nay mình muốn viết một bài chia sẻ về vấn đề sử dụng weak self bừa bãi trong swift…

Đọc Thêm Đọc Thêm