Skip to main content

Posts

Showing posts from 2014

(Kinh nghiệm) Viết code ARC hay Non-ARC trên iOS

- Ai đã từng lập trình trên iOS trước iOS 5.0 đều phải tự quản lý bộ nhớ, đó là kiến trúc  Non-ARC. Nếu bạn quản lý bộ nhớ không tốt thì có thể crash app khi ứng dụng sử dụng nhiều memory quá và không bị huỷ đi. - Từ lúc Apple ra iOS 5.0 thì cũng ra 1 kiến trúc mới đó là  ARC . Theo lý thuyết ARC là hệ thống tự quản lý bộ nhớ khi bạn khởi tạo nó. Giống như trình quản lý bộ nhớ của Java (garbage collector). - Nhưng theo mình thì chúng ta nên quản lý bộ nhớ khi mình khởi tạo những đối tượng đó thì tốt nhất, tức là viết theo kiểu ARC giống Non-ARC . Bởi vì nếu để system toàn quyền quyết định thì ta không biết khi nào chúng bị huỷ đi, theo cảm giác của mình khi hệ thống cần bộ nhớ thì nó mới bị huỷ đi. - Ví dụ mình có 5 biến với 1 biến A là property, 1 biến B là toàn cục được khai báo trong file .h, 1 biến C là toàn cục được khai báo trong file .m, 1 biến D là local và 1 biến array. Một  vài lưu ý khi các bạn làm trên ARC nên chú ý là:  Khi bạn khởi tạo 1 biến to...

Hướng dẫn chạy location ở dưới background trên iOS 6.0 và iOS 7.0

Mình bỏ nhiều thời gian nghiên cứu về vấn đề này nên hôm nay xin chia sẻ những kinh nghiệm mà mình tích góp được về vấn đề xử lý location ở dưới background trên iOS 6 và iOS 7. Sau này ra iOS 8 hay 9 mình sẽ cập nhật lại sau ^^. Những thứ bạn cần nắm trước khi bắt đầu như: - Hiểu cơ chế, các dịch vụ để  lấy location, cách sử dụng dịch vụ đó? Bạn cần xem tại đây . Ở đây mình xin tóm tắt apple hỗ trợ chúng ta 2 dịch vụ để lấy location là "Standard Location Service" và "Significant Location Service". "Standard Location Service": Là dịch vụ chuẩn thông thường đề lấy location của system. Nếu dùng service này bạn có thể chỉnh theo tuỳ thích mà bạn muốn, ví dụ như: Luôn luôn cập nhật location, cập nhật location theo thời gian (Lưu ý: nếu bạn ở trạng thái background thì phải tuân thủ thời gian cho phép chạy timer đó, cái này mình sẽ đề cập ở phần sau.), cập nhật location khi đi xa 1 khoảng cách là bao nhiêu, ... "Significant Location Service": Là dịch vụ...