Đã bao giờ các bạn thắc mắc, block được implement như thế nào, nó hoạt động ra sao, tại sao lại có thể bị memleak khi dùng block trong Objc chưa. Mình có một sự tò mò suốt 1 thời gian dài, đó chính là block đã retain các biến của mình khi nào, và […]
Message Dispatch
Như những bài trước mình đã trình bày, object sẽ chứa một trường là isa. Từ isa thì runtime sẽ lấy được thông tin của class đó. Và từ đó dùng nó để gọi hàm khi chúng ta gọi hàm trong objc. Thì hôm nay chúng ta sẽ tìm hiểu về cơ chế Message Dispatch […]
Inside Objc Class
Bài viết hôm nay chủ yếu nói về class trong Objc được implement như thế nào và tại sao objc runtime có thể biết được object đó thuộc class nào để gọi hàm. Series này được chia thành nhiều phần. Phần 1: Khái niệm, ưu nhược điểm. Phẩn 2: Chúng ta có thể làm gì […]
Objective-C Runtime Part 3 – Swift & Objc Runtime
Thậm chí iOS App của bạn được viết bằng swift hoàn toàn, thì bên trong nó đều sử dụng tới Objc Runtime. Bởi vì những thư viện cốt lõi đều được viết bằng Objc như Foundation, UIKit, …. Mà gắn với Objc thì tất nhiên phải có Objc Runtime rồi. Bài viết hôm nay tập […]
Objective-C Runtime Part 2
Có rất nhiều thứ mà chúng ta có thể làm với objc runtime, tuy nhiên trong bài này mình chỉ đề cập tới một số trường hợp thông dụng hay sử dụng. Các vấn đề khác các bạn có thể tìm hiểu thêm và sau đó comment ở bên dưới nhé. Series này được chia […]
Objective-C Runtime Part 1
Series này được chia thành nhiều phần. Phần 1: Khái niệm, ưu nhược điểm. Phẩn 2: Chúng ta có thể làm gì với objc runtime. Phần 3: Swift & Objc Runtime Phần 4: Inside Objc Class Phần 5: Message dispatch 1. Khái niệm Objective-C runtime là một thư viện runtime, được viết chủ yếu bằng […]
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. […]
Non-pointer isa
Bài viết này có thể không hữu ích về mặt lập trình, tuy nhiên sẽ giúp ta hiểu hơn về cấu trúc của isa và biết được objc runtime biết được object đó thuộc class nào. Ở kiến trúc 32bit, thì isa được coi là pointer trỏ tới vùng nhớ định nghĩa class. Vì có […]
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 […]