Duyệt bởi
Tag: ObjC

Advanced Debug Part 2

Advanced Debug Part 2

Tiếp nối phần trước, phần này chúng ta sẽ tìm hiểu thêm về 1 số loại breakpoint khác. Các bạn có thể đọc lại phần 1 tại đây. Exception breakpoint Xét ví dụ sau: Chương trình trên bị crash và nhảy ra ngoài main. Như vậy rất khó để debug xem tại sao, nếu chỉ nhìn log thì không biết chỗ nào gây ra crash này. Lúc này ta có thể sử dụng Exception breakpoint để bắt xem Exception xảy…

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

Advanced Debug Part 1

Advanced Debug Part 1

Không có chương trình nào là không có lỗi, thế nên là lập trình viên thì luôn luôn phải đối mặt với nó. Có những lỗi rất dễ dàng tìm ra bằng cách đọc code. Tuy nhiên có những lỗi rất khó tìm được ra nguyên nhân. Hoặc chúng ta mới vào dự án chưa hiểu được luồng của phần mềm thì cũng rất khó để tìm ra nguyên nhân nếu không có cách tiếp cận đúng. Trong series chúng…

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

Debug conflict autolayout constraints

Debug conflict autolayout constraints

Là lập trình viên iOS, chắc hẳn ai cũng biết về autolayout. Autolayout là tính năng giúp lập trình viên layout các thành phần để tạo ra giao diện cho app của mình. Tuy nhiên, có thể do vô tình mà chúng ta gây ra tình trạng conflict constraint( breaking constraint). Đó là tình trạng mà autolayout engine không biết nên xử lý layout như thế nào do có hai hoặc nhiều constraint bị conflict nhau. Khi bị conflict constraint…

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

Block Internal

Block Internal

Đã 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à khi nào thì release chúng. Bài viết hôm nay sẽ giải đáp một phần thắc mắc đó, chúng ta sẽ đi tìm hiểu xem block…

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

Message Dispatch

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 – cách gọi hàm của objc thực chất hoạt động như thế nào. Series này được chia thành nhiều phần. Phần 1: Khái niệm, ưu…

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

Inside Objc Class

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ì với objc runtime. Phần 3: Swift & Objc Runtime Phần 4: Inside Objc Class Phần 5: Message dispatch 1. Class 1.1 Define of class Trong…

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

Objective-C Runtime Part 3 – Swift & Objc Runtime

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 trung nói về ứng dụng dùng Swift của bạn sử dụng Objc Runtime như thế nào. Series này được chia thành nhiều phần. Phần 1:…

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

Objective-C Runtime Part 2

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 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 &…

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

Objective-C Runtime Part 1

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 C và assembly, là trái tim của ngôn ngữ Objective-C. Nó thêm tính năng hướng đối tượng cho ngôn ngữ C để tạo ra ngôn…

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

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