{"id":29080,"date":"2025-06-14T09:23:45","date_gmt":"2025-06-14T02:23:45","guid":{"rendered":"https:\/\/interdata.vn\/blog\/?p=29080"},"modified":"2025-07-14T10:34:32","modified_gmt":"2025-07-14T03:34:32","slug":"objective-c-la-gi","status":"publish","type":"post","link":"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/","title":{"rendered":"Objective-C l\u00e0 g\u00ec? \u01afu, Nh\u01b0\u1ee3c \u0111i\u1ec3m &#038; C\u00f3 \u0111\u00e1ng h\u1ecdc 2025 kh\u00f4ng?"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed8I DUNG<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#Objective-C-la-gi\" >Objective-C l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#Dac-diem-noi-bat-cua-Objective-C\" >\u0110\u1eb7c \u0111i\u1ec3m n\u1ed5i b\u1eadt c\u1ee7a Objective-C<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#Ngon-ngu-huong-doi-tuong-OOP\" >Ng\u00f4n ng\u1eef h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng (OOP)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#Ho-tro-co-che-nhan-tin-Messaging\" >H\u1ed7 tr\u1ee3 c\u01a1 ch\u1ebf nh\u1eafn tin (Messaging)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#Dong-Dynamic-Runtime\" >\u0110\u1ed9ng (Dynamic Runtime)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#Tuong-thich-voi-CC\" >T\u01b0\u01a1ng th\u00edch v\u1edbi C\/C++<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#Su-dung-Header-Files\" >S\u1eed d\u1ee5ng Header Files<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#Uu-va-Nhuoc-diem-cua-ngon-ngu-lap-trinh-Objective-C\" >\u01afu v\u00e0 Nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ee7a ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh Objective C<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#Uu-diem-cua-Objective-C-la-gi\" >\u01afu \u0111i\u1ec3m c\u1ee7a Objective C l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#Nhuoc-diem-cua-Objective-C-la-gi\" >Nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ee7a Objective C l\u00e0 g\u00ec?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#Cac-thu-vien-va-Framework-pho-bien-trong-Objective-C\" >C\u00e1c th\u01b0 vi\u1ec7n v\u00e0 Framework ph\u1ed5 bi\u1ebfn trong Objective-C<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#1-Cocoa-Va-Cocoa-Touch\" >1. Cocoa V\u00e0 Cocoa Touch<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#2-Foundation-Framework\" >2. Foundation Framework<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#3-UIKit-Framework\" >3. UIKit Framework<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#4-AFNetworking\" >4. AFNetworking<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#5-Core-Data\" >5. Core Data<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#6-SDWebImage\" >6. SDWebImage<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#7-Masonry\" >7. Masonry<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#8-ReactiveCocoa\" >8. ReactiveCocoa<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#9-CocoaPods\" >9. CocoaPods<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#Truong-hop-ung-dung-ngon-ngu-Objective-C\" >Tr\u01b0\u1eddng h\u1ee3p \u1ee9ng d\u1ee5ng ng\u00f4n ng\u1eef Objective-C<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#So-sanh-Objective-C-va-Swift\" >So s\u00e1nh Objective-C v\u00e0 Swift<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/interdata.vn\/blog\/objective-c-la-gi\/#Objective-C-con-phu-hop-de-hoc\" >Objective-C c\u00f2n ph\u1ee5 h\u1ee3p \u0111\u1ec3 h\u1ecdc?<\/a><\/li><\/ul><\/nav><\/div>\n<p>Objective-C, m\u1ed9t ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh m\u1ea1nh m\u1ebd, \u0111\u00e3 \u0111\u1ecbnh h\u00ecnh n\u00ean nhi\u1ec1u \u1ee9ng d\u1ee5ng iOS v\u00e0 macOS m\u00e0 ch\u00fang ta s\u1eed d\u1ee5ng h\u00e0ng ng\u00e0y. B\u00e0i vi\u1ebft n\u00e0y, InterData s\u1ebd cung c\u1ea5p chi ti\u1ebft v\u1ec1 Objective-C, c\u00e1c \u0111\u1eb7c \u0111i\u1ec3m c\u1ed1t l\u00f5i, \u0111\u1ebfn c\u00e1c th\u01b0 vi\u1ec7n v\u00e0 <a href=\"https:\/\/interdata.vn\/blog\/framework-la-gi\/\">Framework<\/a> ph\u1ed5 bi\u1ebfn trong Objective C v\u00e0 so s\u00e1nh v\u1edbi Swift, gi\u00fap b\u1ea1n c\u00f3 c\u00e1i nh\u00ecn r\u00f5 r\u00e0ng nh\u1ea5t v\u1ec1 ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh n\u00e0y.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Objective-C-la-gi\"><\/span>Objective-C l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>Objective-C (Objective C) l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng (OOP)<\/strong> <strong>\u0111a n\u0103ng, m\u1edf r\u1ed9ng t\u1eeb <a href=\"https:\/\/interdata.vn\/blog\/ngon-ngu-c-la-gi\/\">ng\u00f4n ng\u1eef C<\/a><\/strong>. \u0110\u00e2y l\u00e0 ng\u00f4n ng\u1eef ch\u00ednh \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng tr\u00ean n\u1ec1n t\u1ea3ng macOS, iOS, iPadOS, watchOS v\u00e0 tvOS c\u1ee7a Apple trong nhi\u1ec1u n\u0103m.<\/p>\n<p>V\u1edbi kh\u1ea3 n\u0103ng th\u00eam c\u00e1c t\u00ednh n\u0103ng h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng v\u00e0o C, Objective-C cung c\u1ea5p m\u1ed9t c\u1ea5u tr\u00fac linh ho\u1ea1t \u0111\u1ec3 ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m ph\u1ee9c t\u1ea1p.<\/p>\n<figure id=\"attachment_29081\" aria-describedby=\"caption-attachment-29081\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Objective-C-la-gi.jpg\" alt=\"Objective-C l\u00e0 g\u00ec?\" width=\"800\" height=\"500\" class=\"size-full wp-image-29081\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Objective-C-la-gi.jpg 800w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Objective-C-la-gi-300x188.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Objective-C-la-gi-768x480.jpg 768w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Objective-C-la-gi-750x469.jpg 750w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-29081\" class=\"wp-caption-text\">Objective-C l\u00e0 g\u00ec?<\/figcaption><\/figure>\n<p>Ng\u00f4n ng\u1eef Objective C \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n v\u00e0o \u0111\u1ea7u nh\u1eefng n\u0103m 1980 b\u1edfi Brad Cox v\u00e0 Tom Love t\u1ea1i c\u00f4ng ty Stepstone. M\u1ee5c ti\u00eau c\u1ee7a h\u1ecd l\u00e0 t\u1ea1o ra m\u1ed9t ng\u00f4n ng\u1eef c\u00f3 kh\u1ea3 n\u0103ng t\u00e1i s\u1eed d\u1ee5ng m\u00e3 t\u1ed1t h\u01a1n, t\u01b0\u01a1ng t\u1ef1 nh\u01b0 Smalltalk nh\u01b0ng v\u1eabn gi\u1eef \u0111\u01b0\u1ee3c hi\u1ec7u su\u1ea5t c\u1ee7a C.<\/p>\n<p>V\u00e0o n\u0103m 1988, NeXT (c\u00f4ng ty do Steve Jobs s\u00e1ng l\u1eadp) \u0111\u00e3 c\u1ea5p ph\u00e9p Objective-C v\u00e0 s\u1eed d\u1ee5ng n\u00f3 l\u00e0m ng\u00f4n ng\u1eef ch\u00ednh cho h\u1ec7 \u0111i\u1ec1u h\u00e0nh NeXTSTEP. Sau khi Apple mua l\u1ea1i NeXT v\u00e0o n\u0103m 1996, Objective-C tr\u1edf th\u00e0nh n\u1ec1n t\u1ea3ng cho Cocoa v\u00e0 Cocoa Touch, hai framework quan tr\u1ecdng nh\u1ea5t c\u1ee7a Apple, t\u1eeb \u0111\u00f3 \u0111\u1ecbnh h\u00ecnh s\u1ef1 ph\u00e1t tri\u1ec3n c\u1ee7a macOS v\u00e0 iOS. Ng\u00f4n ng\u1eef n\u00e0y duy tr\u00ec v\u1ecb th\u1ebf \u0111\u1ed9c t\u00f4n cho \u0111\u1ebfn khi Swift ra m\u1eaft v\u00e0o n\u0103m 2014.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Dac-diem-noi-bat-cua-Objective-C\"><\/span>\u0110\u1eb7c \u0111i\u1ec3m n\u1ed5i b\u1eadt c\u1ee7a Objective-C<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Objective-C s\u1edf h\u1eefu nhi\u1ec1u \u0111\u1eb7c \u0111i\u1ec3m \u0111\u1ed9c \u0111\u00e1o gi\u00fap n\u00f3 tr\u1edf th\u00e0nh m\u1ed9t l\u1ef1a ch\u1ecdn m\u1ea1nh m\u1ebd cho l\u1eadp tr\u00ecnh h\u1ec7 sinh th\u00e1i Apple:<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Ngon-ngu-huong-doi-tuong-OOP\"><\/span>Ng\u00f4n ng\u1eef h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng (OOP)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Objective-C tu\u00e2n th\u1ee7 ch\u1eb7t ch\u1ebd nguy\u00ean t\u1eafc OOP, cho ph\u00e9p l\u1eadp tr\u00ecnh vi\u00ean t\u1ea1o ra c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng ch\u1ee9a c\u1ea3 d\u1eef li\u1ec7u v\u00e0 h\u00e0nh vi. \u0110i\u1ec1u n\u00e0y gi\u00fap <a href=\"https:\/\/interdata.vn\/blog\/source-code-la-gi\/\">m\u00e3 ngu\u1ed3n<\/a> tr\u1edf n\u00ean c\u00f3 t\u1ed5 ch\u1ee9c, d\u1ec5 qu\u1ea3n l\u00fd v\u00e0 t\u00e1i s\u1eed d\u1ee5ng, t\u01b0\u01a1ng t\u1ef1 c\u00e1c ng\u00f4n ng\u1eef nh\u01b0 <a href=\"https:\/\/interdata.vn\/blog\/ngon-ngu-lap-trinh-java\/\">Java<\/a> hay C++.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Ho-tro-co-che-nhan-tin-Messaging\"><\/span>H\u1ed7 tr\u1ee3 c\u01a1 ch\u1ebf nh\u1eafn tin (Messaging)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0110i\u1ec3m kh\u00e1c bi\u1ec7t l\u1edbn nh\u1ea5t c\u1ee7a ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh Objective-C so v\u1edbi c\u00e1c ng\u00f4n ng\u1eef C++ hay Java l\u00e0 c\u00e1ch n\u00f3 x\u1eed l\u00fd vi\u1ec7c g\u1ecdi ph\u01b0\u01a1ng th\u1ee9c. Thay v\u00ec &#8220;g\u1ecdi h\u00e0m&#8221;, Objective-C s\u1eed d\u1ee5ng &#8220;g\u1eedi tin nh\u1eafn&#8221; (sending messages) t\u1edbi c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng. C\u01a1 ch\u1ebf n\u00e0y cho ph\u00e9p c\u00e1c quy\u1ebft \u0111\u1ecbnh v\u1ec1 vi\u1ec7c ph\u01b0\u01a1ng th\u1ee9c n\u00e0o s\u1ebd \u0111\u01b0\u1ee3c th\u1ef1c thi c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c \u0111\u01b0a ra trong th\u1eddi gian ch\u1ea1y (runtime), mang l\u1ea1i s\u1ef1 linh ho\u1ea1t cao.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Dong-Dynamic-Runtime\"><\/span>\u0110\u1ed9ng (Dynamic Runtime)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh Objective-C l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef \u0111\u1ed9ng. \u0110i\u1ec1u n\u00e0y c\u00f3 ngh\u0129a l\u00e0 nhi\u1ec1u quy\u1ebft \u0111\u1ecbnh v\u1ec1 c\u00e1ch th\u1ee9c ch\u01b0\u01a1ng tr\u00ecnh ho\u1ea1t \u0111\u1ed9ng \u0111\u01b0\u1ee3c \u0111\u01b0a ra trong qu\u00e1 tr\u00ecnh ch\u1ea1y (runtime), thay v\u00ec t\u1ea1i th\u1eddi \u0111i\u1ec3m bi\u00ean d\u1ecbch (compile time). V\u00ed d\u1ee5, b\u1ea1n c\u00f3 th\u1ec3 th\u00eam c\u00e1c ph\u01b0\u01a1ng th\u1ee9c m\u1edbi v\u00e0o m\u1ed9t l\u1edbp \u0111\u00e3 t\u1ed3n t\u1ea1i ho\u1eb7c thay \u0111\u1ed5i h\u00e0nh vi c\u1ee7a m\u1ed9t ph\u01b0\u01a1ng th\u1ee9c ngay trong l\u00fac ch\u01b0\u01a1ng tr\u00ecnh \u0111ang ch\u1ea1y.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Tuong-thich-voi-CC\"><\/span>T\u01b0\u01a1ng th\u00edch v\u1edbi C\/C++<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>V\u00ec l\u00e0 m\u1ed9t t\u1eadp con c\u1ee7a C, Objective-C c\u00f3 kh\u1ea3 n\u0103ng t\u01b0\u01a1ng th\u00edch ng\u01b0\u1ee3c ho\u00e0n to\u00e0n v\u1edbi C v\u00e0 c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng s\u1eed d\u1ee5ng c\u00e1c \u0111o\u1ea1n m\u00e3 C ho\u1eb7c C++ trong c\u00f9ng m\u1ed9t d\u1ef1 \u00e1n. \u0110i\u1ec1u n\u00e0y gi\u00fap c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean t\u1eadn d\u1ee5ng \u0111\u01b0\u1ee3c c\u00e1c th\u01b0 vi\u1ec7n C\/C++ hi\u1ec7n c\u00f3 v\u00e0 d\u1ec5 d\u00e0ng chuy\u1ec3n \u0111\u1ed5i t\u1eeb C sang Objective-C.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Su-dung-Header-Files\"><\/span>S\u1eed d\u1ee5ng Header Files<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>T\u01b0\u01a1ng t\u1ef1 nh\u01b0 C, Objective-C s\u1eed d\u1ee5ng c\u00e1c t\u1ec7p tin ti\u00eau \u0111\u1ec1 (<a href=\"https:\/\/interdata.vn\/blog\/header-la-gi\/\">header<\/a> files &#8211; .h) \u0111\u1ec3 khai b\u00e1o c\u00e1c l\u1edbp, ph\u01b0\u01a1ng th\u1ee9c v\u00e0 bi\u1ebfn. C\u00e1c t\u1ec7p tin tri\u1ec3n khai (implementation files &#8211; .m) ch\u1ee9a \u0111\u1ecbnh ngh\u0129a chi ti\u1ebft c\u1ee7a c\u00e1c l\u1edbp v\u00e0 ph\u01b0\u01a1ng th\u1ee9c \u0111\u00f3.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Uu-va-Nhuoc-diem-cua-ngon-ngu-lap-trinh-Objective-C\"><\/span>\u01afu v\u00e0 Nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ee7a ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh Objective C<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Objective-C, d\u00f9 kh\u00f4ng c\u00f2n l\u00e0 ng\u00f4n ng\u1eef \u0111\u01b0\u1ee3c \u01b0u ti\u00ean h\u00e0ng \u0111\u1ea7u c\u1ee7a Apple, v\u1eabn c\u00f3 nh\u1eefng \u01b0u v\u00e0 nh\u01b0\u1ee3c \u0111i\u1ec3m ri\u00eang bi\u1ec7t. Vi\u1ec7c hi\u1ec3u r\u00f5 \u01b0u &#8211; nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ee7a ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh Objective C l\u00e0 g\u00ec s\u1ebd gi\u00fap b\u1ea1n \u0111\u01b0a ra quy\u1ebft \u0111\u1ecbnh ph\u00f9 h\u1ee3p khi l\u00e0m vi\u1ec7c v\u1edbi c\u00e1c d\u1ef1 \u00e1n c\u0169 ho\u1eb7c c\u00e2n nh\u1eafc h\u1ecdc ng\u00f4n ng\u1eef n\u00e0y.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Uu-diem-cua-Objective-C-la-gi\"><\/span>\u01afu \u0111i\u1ec3m c\u1ee7a Objective C l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Objective-C mang \u0111\u1ebfn nhi\u1ec1u l\u1ee3i \u00edch \u0111\u00e1ng k\u1ec3, \u0111\u1eb7c bi\u1ec7t l\u00e0 trong c\u00e1c ng\u1eef c\u1ea3nh ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng Apple l\u00e2u \u0111\u1eddi.<\/p>\n<ul>\n<li><strong>T\u01b0\u01a1ng th\u00edch ng\u01b0\u1ee3c m\u1ea1nh m\u1ebd v\u1edbi C\/C++:<\/strong> M\u1ed9t trong nh\u1eefng \u01b0u \u0111i\u1ec3m l\u1edbn nh\u1ea5t c\u1ee7a Objective-C l\u00e0 kh\u1ea3 n\u0103ng t\u01b0\u01a1ng th\u00edch ho\u00e0n to\u00e0n v\u1edbi C v\u00e0 C++. \u0110i\u1ec1u n\u00e0y cho ph\u00e9p l\u1eadp tr\u00ecnh vi\u00ean d\u1ec5 d\u00e0ng t\u00edch h\u1ee3p v\u00e0 s\u1eed d\u1ee5ng l\u1ea1i c\u00e1c th\u01b0 vi\u1ec7n, \u0111o\u1ea1n m\u00e3 C\/C++ hi\u1ec7n c\u00f3 v\u00e0o d\u1ef1 \u00e1n Objective-C m\u00e0 kh\u00f4ng g\u1eb7p nhi\u1ec1u r\u00e0o c\u1ea3n.<\/li>\n<li><strong>\u1ed4n \u0111\u1ecbnh:<\/strong> Objective-C \u0111\u00e3 t\u1ed3n t\u1ea1i v\u00e0 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i trong nhi\u1ec1u th\u1eadp k\u1ef7. Do \u0111\u00f3, n\u00f3 l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef r\u1ea5t \u1ed5n \u0111\u1ecbnh, \u0111\u00e3 \u0111\u01b0\u1ee3c ki\u1ec3m ch\u1ee9ng qua th\u1eddi gian v\u1edbi \u00edt l\u1ed7i ph\u00e1t sinh t\u1eeb ch\u00ednh ng\u00f4n ng\u1eef. C\u1ed9ng \u0111\u1ed3ng v\u00e0 t\u00e0i li\u1ec7u h\u1ed7 tr\u1ee3 cho c\u00e1c phi\u00ean b\u1ea3n c\u0169 c\u0169ng r\u1ea5t phong ph\u00fa.<\/li>\n<li><strong>Ph\u00f9 h\u1ee3p cho vi\u1ec7c duy tr\u00ec d\u1ef1 \u00e1n <a href=\"https:\/\/interdata.vn\/blog\/ke-thua-la-gi\/\">k\u1ebf th\u1eeba<\/a> (Legacy Projects):<\/strong> H\u00e0ng ng\u00e0n \u1ee9ng d\u1ee5ng tr\u00ean App Store \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng b\u1eb1ng Objective-C. C\u00e1c c\u00f4ng ty l\u1edbn th\u01b0\u1eddng c\u00f3 nhi\u1ec1u d\u1ef1 \u00e1n k\u1ebf th\u1eeba c\u1ea7n \u0111\u01b0\u1ee3c duy tr\u00ec, c\u1eadp nh\u1eadt v\u00e0 m\u1edf r\u1ed9ng. K\u1ef9 n\u0103ng Objective-C l\u00e0 b\u1eaft bu\u1ed9c \u0111\u1ed1i v\u1edbi nh\u1eefng ai mu\u1ed1n tham gia v\u00e0o c\u00e1c d\u1ef1 \u00e1n n\u00e0y.<\/li>\n<li><strong>Linh ho\u1ea1t trong th\u1eddi gian ch\u1ea1y (Runtime Flexibility):<\/strong> C\u01a1 ch\u1ebf \u0111\u1ed9ng c\u1ee7a Objective-C cho ph\u00e9p l\u1eadp tr\u00ecnh vi\u00ean th\u1ef1c hi\u1ec7n nhi\u1ec1u thao t\u00e1c trong th\u1eddi gian ch\u1ea1y (runtime), nh\u01b0 thay \u0111\u1ed5i h\u00e0nh vi c\u1ee7a \u0111\u1ed1i t\u01b0\u1ee3ng ho\u1eb7c th\u00eam ph\u01b0\u01a1ng th\u1ee9c m\u1edbi. \u0110i\u1ec1u n\u00e0y mang l\u1ea1i s\u1ef1 linh ho\u1ea1t cao trong m\u1ed9t s\u1ed1 tr\u01b0\u1eddng h\u1ee3p l\u1eadp tr\u00ecnh \u0111\u1eb7c bi\u1ec7t.<\/li>\n<\/ul>\n<figure id=\"attachment_29082\" aria-describedby=\"caption-attachment-29082\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Uu-va-Nhuoc-diem-cua-ngon-ngu-lap-trinh-Objective-C.jpg\" alt=\"\u01afu v\u00e0 Nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ee7a ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh Objective C\" width=\"800\" height=\"500\" class=\"size-full wp-image-29082\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Uu-va-Nhuoc-diem-cua-ngon-ngu-lap-trinh-Objective-C.jpg 800w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Uu-va-Nhuoc-diem-cua-ngon-ngu-lap-trinh-Objective-C-300x188.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Uu-va-Nhuoc-diem-cua-ngon-ngu-lap-trinh-Objective-C-768x480.jpg 768w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Uu-va-Nhuoc-diem-cua-ngon-ngu-lap-trinh-Objective-C-750x469.jpg 750w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-29082\" class=\"wp-caption-text\">\u01afu v\u00e0 Nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ee7a ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh Objective C<\/figcaption><\/figure>\n<h3><span class=\"ez-toc-section\" id=\"Nhuoc-diem-cua-Objective-C-la-gi\"><\/span>Nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ee7a Objective C l\u00e0 g\u00ec?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>B\u00ean c\u1ea1nh nh\u1eefng \u01b0u \u0111i\u1ec3m, Objective-C c\u0169ng t\u1ed3n t\u1ea1i m\u1ed9t s\u1ed1 h\u1ea1n ch\u1ebf khi so s\u00e1nh v\u1edbi c\u00e1c ng\u00f4n ng\u1eef hi\u1ec7n \u0111\u1ea1i h\u01a1n.<\/p>\n<ul>\n<li><strong>C\u00fa ph\u00e1p ph\u1ee9c t\u1ea1p v\u00e0 d\u00e0i d\u00f2ng:<\/strong> C\u00fa ph\u00e1p c\u1ee7a Objective-C, \u0111\u1eb7c bi\u1ec7t l\u00e0 c\u01a1 ch\u1ebf nh\u1eafn tin b\u1eb1ng d\u1ea5u ngo\u1eb7c vu\u00f4ng [object message] v\u00e0 vi\u1ec7c y\u00eau c\u1ea7u\u00a0header file, \u0111\u01b0\u1ee3c \u0111\u00e1nh gi\u00e1 l\u00e0 kh\u00f3 \u0111\u1ecdc v\u00e0 d\u00e0i d\u00f2ng h\u01a1n so v\u1edbi c\u00e1c ng\u00f4n ng\u1eef kh\u00e1c nh\u01b0 Swift. \u0110i\u1ec1u n\u00e0y c\u00f3 th\u1ec3 l\u00e0m ch\u1eadm qu\u00e1 tr\u00ecnh h\u1ecdc v\u00e0 ph\u00e1t tri\u1ec3n.<\/li>\n<li><strong>Thi\u1ebfu c\u00e1c t\u00ednh n\u0103ng an to\u00e0n, hi\u1ec7n \u0111\u1ea1i:<\/strong> Objective-C thi\u1ebfu \u0111i nhi\u1ec1u t\u00ednh n\u0103ng an to\u00e0n m\u00e0 Swift cung c\u1ea5p, v\u00ed d\u1ee5 nh\u01b0 x\u1eed l\u00fd nil m\u1ed9t c\u00e1ch an to\u00e0n th\u00f4ng qua optional. \u0110i\u1ec1u n\u00e0y c\u00f3 th\u1ec3 d\u1eabn \u0111\u1ebfn c\u00e1c l\u1ed7i runtime ph\u1ed5 bi\u1ebfn nh\u01b0 l\u1ed7i con tr\u1ecf null n\u1ebfu l\u1eadp tr\u00ecnh vi\u00ean kh\u00f4ng c\u1ea9n th\u1eadn <a href=\"https:\/\/interdata.vn\/blog\/memory-management-la-gi\/\">qu\u1ea3n l\u00fd b\u1ed9 nh\u1edb<\/a> v\u00e0 gi\u00e1 tr\u1ecb.<\/li>\n<li><strong>T\u1ed1c \u0111\u1ed9 ph\u00e1t tri\u1ec3n ch\u1eadm so v\u1edbi Swift:<\/strong> V\u1edbi c\u00fa ph\u00e1p d\u00e0i d\u00f2ng v\u00e0 \u00edt t\u00ednh n\u0103ng t\u1ef1 \u0111\u1ed9ng h\u00f3a, vi\u1ec7c vi\u1ebft code trong Objective-C th\u01b0\u1eddng t\u1ed1n nhi\u1ec1u th\u1eddi gian h\u01a1n. C\u00e1c t\u00ednh n\u0103ng nh\u01b0 suy lu\u1eadn ki\u1ec3u (type inference) hay qu\u1ea3n l\u00fd b\u1ed9 nh\u1edb t\u1ef1 \u0111\u1ed9ng hi\u1ec7u qu\u1ea3 c\u1ee7a Swift gi\u00fap t\u0103ng t\u1ed1c \u0111\u1ed9 ph\u00e1t tri\u1ec3n \u0111\u00e1ng k\u1ec3.<\/li>\n<li><strong>C\u1ed9ng \u0111\u1ed3ng v\u00e0 s\u1ef1 ph\u00e1t tri\u1ec3n m\u1edbi gi\u1ea3m d\u1ea7n:<\/strong> K\u1ec3 t\u1eeb khi Swift ra m\u1eaft, Apple \u0111\u00e3 \u01b0u ti\u00ean ph\u00e1t tri\u1ec3n Swift, khi\u1ebfn c\u1ed9ng \u0111\u1ed3ng Objective-C m\u1edbi gi\u1ea3m \u0111i \u0111\u00e1ng k\u1ec3. H\u1ea7u h\u1ebft c\u00e1c th\u01b0 vi\u1ec7n v\u00e0 framework m\u1edbi \u0111\u1ec1u \u0111\u01b0\u1ee3c vi\u1ebft b\u1eb1ng Swift, v\u00e0 c\u00e1c kh\u00f3a h\u1ecdc, t\u00e0i li\u1ec7u m\u1edbi c\u0169ng t\u1eadp trung v\u00e0o Swift, l\u00e0m cho vi\u1ec7c t\u00ecm ki\u1ebfm h\u1ed7 tr\u1ee3 cho Objective-C tr\u1edf n\u00ean kh\u00f3 kh\u0103n h\u01a1n.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Cac-thu-vien-va-Framework-pho-bien-trong-Objective-C\"><\/span>C\u00e1c th\u01b0 vi\u1ec7n v\u00e0 Framework ph\u1ed5 bi\u1ebfn trong Objective-C<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh Objective-C \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 b\u1edfi m\u1ed9t h\u1ec7 sinh th\u00e1i phong ph\u00fa g\u1ed3m c\u00e1c th\u01b0 vi\u1ec7n v\u00e0 framework, \u0111\u00f3ng vai tr\u00f2 c\u1ed1t l\u00f5i trong vi\u1ec7c x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng tr\u00ean n\u1ec1n t\u1ea3ng Apple.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"1-Cocoa-Va-Cocoa-Touch\"><\/span>1. Cocoa V\u00e0 Cocoa Touch<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Cocoa<\/strong> l\u00e0 framework \u1ee9ng d\u1ee5ng g\u1ed1c cho macOS, cung c\u1ea5p c\u00e1c API (Application Programming Interface) \u0111\u1ec3 ph\u00e1t tri\u1ec3n c\u00e1c \u1ee9ng d\u1ee5ng desktop. <strong>Cocoa Touch<\/strong> l\u00e0 phi\u00ean b\u1ea3n t\u01b0\u01a1ng \u1ee9ng cho iOS, \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u h\u00f3a cho m\u00e0n h\u00ecnh c\u1ea3m \u1ee9ng v\u00e0 thi\u1ebft b\u1ecb di \u0111\u1ed9ng. C\u1ea3 hai \u0111\u1ec1u l\u00e0 b\u1ed9 khung ch\u00ednh m\u00e0 c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n Objective-C d\u1ef1a v\u00e0o.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"2-Foundation-Framework\"><\/span>2. Foundation Framework<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Foundation Framework<\/strong> l\u00e0 n\u1ec1n t\u1ea3ng c\u1ee7a c\u00e1c \u1ee9ng d\u1ee5ng Cocoa v\u00e0 Cocoa Touch. N\u00f3 cung c\u1ea5p c\u00e1c l\u1edbp c\u01a1 b\u1ea3n cho c\u00e1c lo\u1ea1i d\u1eef li\u1ec7u ph\u1ed5 bi\u1ebfn nh\u01b0 chu\u1ed7i (NSString), s\u1ed1 (NSNumber), <a href=\"https:\/\/interdata.vn\/blog\/array-la-gi\/\">m\u1ea3ng<\/a> (NSArray), t\u1eeb \u0111i\u1ec3n (NSDictionary), ng\u00e0y th\u00e1ng (NSDate), v\u00e0 c\u00e1c ch\u1ee9c n\u0103ng qu\u1ea3n l\u00fd t\u1eadp tin, URL. H\u1ea7u h\u1ebft m\u1ecdi \u1ee9ng d\u1ee5ng Objective-C \u0111\u1ec1u s\u1eed d\u1ee5ng Foundation.<\/p>\n<figure id=\"attachment_29083\" aria-describedby=\"caption-attachment-29083\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Cac-thu-vien-va-Framework-pho-bien-trong-Objective-C.jpg\" alt=\"C\u00e1c th\u01b0 vi\u1ec7n v\u00e0 Framework ph\u1ed5 bi\u1ebfn trong Objective-C\" width=\"800\" height=\"500\" class=\"size-full wp-image-29083\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Cac-thu-vien-va-Framework-pho-bien-trong-Objective-C.jpg 800w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Cac-thu-vien-va-Framework-pho-bien-trong-Objective-C-300x188.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Cac-thu-vien-va-Framework-pho-bien-trong-Objective-C-768x480.jpg 768w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Cac-thu-vien-va-Framework-pho-bien-trong-Objective-C-750x469.jpg 750w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-29083\" class=\"wp-caption-text\">C\u00e1c th\u01b0 vi\u1ec7n v\u00e0 Framework ph\u1ed5 bi\u1ebfn trong Objective-C<\/figcaption><\/figure>\n<h3><span class=\"ez-toc-section\" id=\"3-UIKit-Framework\"><\/span>3. UIKit Framework<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>UIKit Framework<\/strong> l\u00e0 tr\u00e1i tim c\u1ee7a <a href=\"https:\/\/interdata.vn\/blog\/ui-la-gi\/\">giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng<\/a> tr\u00ean iOS. N\u00f3 cung c\u1ea5p t\u1ea5t c\u1ea3 c\u00e1c th\u00e0nh ph\u1ea7n giao di\u1ec7n m\u00e0 b\u1ea1n th\u1ea5y tr\u00ean iPhone, iPad, nh\u01b0 n\u00fat (UIButton), nh\u00e3n (UILabel), b\u1ea3ng (UITableView), b\u1ed9 \u0111i\u1ec1u khi\u1ec3n xem (UIViewController). N\u1ebfu b\u1ea1n mu\u1ed1n t\u1ea1o \u1ee9ng d\u1ee5ng iOS, b\u1ea1n ph\u1ea3i l\u00e0m vi\u1ec7c v\u1edbi UIKit.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"4-AFNetworking\"><\/span>4. AFNetworking<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>AFNetworking<\/strong> l\u00e0 m\u1ed9t th\u01b0 vi\u1ec7n m\u1ea1ng m\u00e3 ngu\u1ed3n m\u1edf ph\u1ed5 bi\u1ebfn trong c\u1ed9ng \u0111\u1ed3ng Objective-C. N\u00f3 gi\u00fap \u0111\u01a1n gi\u1ea3n h\u00f3a c\u00e1c t\u00e1c v\u1ee5 li\u00ean quan \u0111\u1ebfn HTTP networking, bao g\u1ed3m g\u1eedi request, nh\u1eadn <a href=\"https:\/\/interdata.vn\/blog\/http-response-la-gi\/\">response<\/a>, t\u1ea3i l\u00ean v\u00e0 t\u1ea3i xu\u1ed1ng d\u1eef li\u1ec7u, qu\u1ea3n l\u00fd phi\u00ean l\u00e0m vi\u1ec7c. M\u1eb7c d\u00f9 Swift c\u00f3 c\u00e1c gi\u1ea3i ph\u00e1p hi\u1ec7n \u0111\u1ea1i h\u01a1n, AFNetworking v\u1eabn \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng trong nhi\u1ec1u d\u1ef1 \u00e1n Objective-C k\u1ebf th\u1eeba.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"5-Core-Data\"><\/span>5. Core Data<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Core Data<\/strong> l\u00e0 framework c\u1ee7a Apple gi\u00fap qu\u1ea3n l\u00fd v\u00f2ng \u0111\u1eddi c\u1ee7a d\u1eef li\u1ec7u \u0111\u1ed1i t\u01b0\u1ee3ng trong \u1ee9ng d\u1ee5ng. N\u00f3 cung c\u1ea5p m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3 \u0111\u1ec3 l\u01b0u tr\u1eef (persistent data), qu\u1ea3n l\u00fd v\u00e0 <a href=\"https:\/\/interdata.vn\/blog\/query-la-gi\/\">truy v\u1ea5n<\/a> d\u1eef li\u1ec7u t\u1eeb c\u01a1 s\u1edf d\u1eef li\u1ec7u ho\u1eb7c c\u00e1c ngu\u1ed3n kh\u00e1c, th\u01b0\u1eddng l\u00e0 SQLite. Core Data kh\u00f4ng ph\u1ea3i l\u00e0 c\u01a1 s\u1edf d\u1eef li\u1ec7u, m\u00e0 l\u00e0 m\u1ed9t l\u1edbp trung gian gi\u1eefa \u1ee9ng d\u1ee5ng v\u00e0 l\u1edbp l\u01b0u tr\u1eef d\u1eef li\u1ec7u.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"6-SDWebImage\"><\/span>6. SDWebImage<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>SDWebImage<\/strong> l\u00e0 m\u1ed9t th\u01b0 vi\u1ec7n t\u1ea3i v\u00e0 l\u01b0u tr\u1eef h\u00ecnh \u1ea3nh web kh\u00f4ng \u0111\u1ed3ng b\u1ed9, \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u h\u00f3a cho iOS. N\u00f3 gi\u00fap c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n d\u1ec5 d\u00e0ng hi\u1ec3n th\u1ecb h\u00ecnh \u1ea3nh t\u1eeb URL trong c\u00e1c \u1ee9ng d\u1ee5ng m\u00e0 kh\u00f4ng l\u00e0m \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn hi\u1ec7u su\u1ea5t giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng. \u0110\u00e2y l\u00e0 m\u1ed9t gi\u1ea3i ph\u00e1p r\u1ea5t ph\u1ed5 bi\u1ebfn \u0111\u1ec3 x\u1eed l\u00fd h\u00ecnh \u1ea3nh trong c\u00e1c \u1ee9ng d\u1ee5ng c\u0169.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"7-Masonry\"><\/span>7. Masonry<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Masonry<\/strong> l\u00e0 m\u1ed9t th\u01b0 vi\u1ec7n h\u1ed7 tr\u1ee3 Auto Layout, cho ph\u00e9p l\u1eadp tr\u00ecnh vi\u00ean \u0111\u1ecbnh ngh\u0129a c\u00e1c r\u00e0ng bu\u1ed9c (constraints) giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng m\u1ed9t c\u00e1ch l\u1eadp tr\u00ecnh v\u00e0 d\u1ec5 \u0111\u1ecdc h\u01a1n. Thay v\u00ec s\u1eed d\u1ee5ng Interface Builder ho\u1eb7c c\u00fa ph\u00e1p Auto Layout m\u1eb7c \u0111\u1ecbnh ph\u1ee9c t\u1ea1p, Masonry cung c\u1ea5p m\u1ed9t API \u0111\u01a1n gi\u1ea3n v\u00e0 r\u00f5 r\u00e0ng.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"8-ReactiveCocoa\"><\/span>8. ReactiveCocoa<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>ReactiveCocoa (RAC)<\/strong> l\u00e0 m\u1ed9t framework l\u1eadp tr\u00ecnh ph\u1ea3n \u1ee9ng (reactive programming) cho Objective-C (v\u00e0 Swift). N\u00f3 cho ph\u00e9p l\u1eadp tr\u00ecnh vi\u00ean x\u1eed l\u00fd c\u00e1c s\u1ef1 ki\u1ec7n v\u00e0 lu\u1ed3ng d\u1eef li\u1ec7u theo c\u00e1ch khai b\u00e1o v\u00e0 composable, gi\u00fap qu\u1ea3n l\u00fd c\u00e1c t\u01b0\u01a1ng t\u00e1c ph\u1ee9c t\u1ea1p c\u1ee7a ng\u01b0\u1eddi d\u00f9ng v\u00e0 c\u00e1c t\u00e1c v\u1ee5 <a href=\"https:\/\/interdata.vn\/blog\/lap-trinh-bat-dong-bo-asynchronous\/\">b\u1ea5t \u0111\u1ed3ng b\u1ed9<\/a> m\u1ed9t c\u00e1ch d\u1ec5 d\u00e0ng h\u01a1n.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"9-CocoaPods\"><\/span>9. CocoaPods<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>CocoaPods<\/strong> kh\u00f4ng ph\u1ea3i l\u00e0 m\u1ed9t th\u01b0 vi\u1ec7n hay framework \u0111\u1ec3 x\u00e2y d\u1ef1ng \u1ee9ng d\u1ee5ng, m\u00e0 l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 qu\u1ea3n l\u00fd c\u00e1c th\u01b0 vi\u1ec7n (dependency manager) cho c\u00e1c d\u1ef1 \u00e1n Swift v\u00e0 Objective-C Cocoa. N\u00f3 gi\u00fap t\u1ef1 \u0111\u1ed9ng h\u00f3a qu\u00e1 tr\u00ecnh t\u00edch h\u1ee3p c\u00e1c th\u01b0 vi\u1ec7n b\u00ean ngo\u00e0i v\u00e0o d\u1ef1 \u00e1n c\u1ee7a b\u1ea1n, ti\u1ebft ki\u1ec7m th\u1eddi gian v\u00e0 gi\u1ea3m thi\u1ec3u l\u1ed7i c\u1ea5u h\u00ecnh. \u0110\u00e2y l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 g\u1ea7n nh\u01b0 kh\u00f4ng th\u1ec3 thi\u1ebfu cho b\u1ea5t k\u1ef3 d\u1ef1 \u00e1n iOS\/macOS n\u00e0o.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Truong-hop-ung-dung-ngon-ngu-Objective-C\"><\/span>Tr\u01b0\u1eddng h\u1ee3p \u1ee9ng d\u1ee5ng ng\u00f4n ng\u1eef Objective-C<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>M\u1eb7c d\u00f9 Swift \u0111\u00e3 tr\u1edf th\u00e0nh ng\u00f4n ng\u1eef ch\u00ednh th\u1ee9c c\u1ee7a Apple, Objective-C v\u1eabn gi\u1eef vai tr\u00f2 quan tr\u1ecdng trong m\u1ed9t s\u1ed1 l\u0129nh v\u1ef1c:<\/p>\n<ul>\n<li><strong>Ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng iOS\/iPadOS:<\/strong> R\u1ea5t nhi\u1ec1u \u1ee9ng d\u1ee5ng iOS hi\u1ec7n c\u00f3 tr\u00ean App Store \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng b\u1eb1ng Objective-C. Vi\u1ec7c duy tr\u00ec v\u00e0 c\u1eadp nh\u1eadt c\u00e1c \u1ee9ng d\u1ee5ng n\u00e0y v\u1eabn \u0111\u00f2i h\u1ecfi ki\u1ebfn th\u1ee9c v\u1ec1 Objective-C.<\/li>\n<li><strong>Ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng macOS:<\/strong> T\u01b0\u01a1ng t\u1ef1 nh\u01b0 iOS, c\u00e1c \u1ee9ng d\u1ee5ng desktop tr\u00ean macOS c\u0169ng c\u00f3 m\u1ed9t l\u1ecbch s\u1eed ph\u00e1t tri\u1ec3n m\u1ea1nh m\u1ebd v\u1edbi Objective-C.<\/li>\n<li><strong>Ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng watchOS\/tvOS:<\/strong> M\u1eb7c d\u00f9 Swift \u0111\u01b0\u1ee3c \u01b0u ti\u00ean, Objective-C v\u1eabn c\u00f3 m\u1eb7t trong m\u1ed9t s\u1ed1 d\u1ef1 \u00e1n c\u0169 h\u01a1n cho c\u00e1c n\u1ec1n t\u1ea3ng n\u00e0y.<\/li>\n<li><strong>Duy tr\u00ec c\u00e1c d\u1ef1 \u00e1n k\u1ebf th\u1eeba (Legacy Projects):<\/strong> \u0110\u00e2y l\u00e0 vai tr\u00f2 quan tr\u1ecdng nh\u1ea5t c\u1ee7a Objective-C hi\u1ec7n nay. Nhi\u1ec1u doanh nghi\u1ec7p, \u0111\u1eb7c bi\u1ec7t l\u00e0 c\u00e1c c\u00f4ng ty l\u1edbn, c\u00f3 h\u00e0ng ng\u00e0n d\u00f2ng m\u00e3 Objective-C trong c\u00e1c \u1ee9ng d\u1ee5ng \u0111\u00e3 ho\u1ea1t \u0111\u1ed9ng nhi\u1ec1u n\u0103m. Vi\u1ec7c chuy\u1ec3n \u0111\u1ed5i to\u00e0n b\u1ed9 sang Swift l\u00e0 m\u1ed9t qu\u00e1 tr\u00ecnh t\u1ed1n k\u00e9m v\u00e0 m\u1ea5t th\u1eddi gian, do \u0111\u00f3, vi\u1ec7c duy tr\u00ec v\u00e0 ph\u00e1t tri\u1ec3n ti\u1ebfp c\u00e1c d\u1ef1 \u00e1n n\u00e0y b\u1eb1ng Objective-C v\u1eabn l\u00e0 c\u1ea7n thi\u1ebft.<\/li>\n<\/ul>\n<figure id=\"attachment_29084\" aria-describedby=\"caption-attachment-29084\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Truong-hop-ung-dung-ngon-ngu-Objective-C.jpg\" alt=\"Tr\u01b0\u1eddng h\u1ee3p \u1ee9ng d\u1ee5ng ng\u00f4n ng\u1eef Objective-C\" width=\"800\" height=\"500\" class=\"size-full wp-image-29084\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Truong-hop-ung-dung-ngon-ngu-Objective-C.jpg 800w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Truong-hop-ung-dung-ngon-ngu-Objective-C-300x188.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Truong-hop-ung-dung-ngon-ngu-Objective-C-768x480.jpg 768w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/Truong-hop-ung-dung-ngon-ngu-Objective-C-750x469.jpg 750w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-29084\" class=\"wp-caption-text\">Tr\u01b0\u1eddng h\u1ee3p \u1ee9ng d\u1ee5ng ng\u00f4n ng\u1eef Objective-C<\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"So-sanh-Objective-C-va-Swift\"><\/span>So s\u00e1nh Objective-C v\u00e0 Swift<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>S\u1ef1 ra \u0111\u1eddi c\u1ee7a Swift v\u00e0o n\u0103m 2014 \u0111\u00e3 thay \u0111\u1ed5i c\u1ee5c di\u1ec7n ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng Apple. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 nh\u1eefng \u0111i\u1ec3m kh\u00e1c bi\u1ec7t ch\u00ednh gi\u1eefa hai ng\u00f4n ng\u1eef:<\/p>\n<ul>\n<li><strong>C\u00fa ph\u00e1p:<\/strong> Swift c\u00f3 c\u00fa ph\u00e1p hi\u1ec7n \u0111\u1ea1i, ng\u1eafn g\u1ecdn v\u00e0 d\u1ec5 \u0111\u1ecdc h\u01a1n nhi\u1ec1u so v\u1edbi Objective-C. Swift lo\u1ea1i b\u1ecf c\u00e1c d\u1ea5u ch\u1ea5m ph\u1ea9y, header files, v\u00e0 s\u1eed d\u1ee5ng c\u01a1 ch\u1ebf an to\u00e0n h\u01a1n nh\u01b0 t\u00f9y ch\u1ecdn (optionals) \u0111\u1ec3 tr\u00e1nh l\u1ed7i nil.<\/li>\n<li><strong>An to\u00e0n v\u00e0 Hi\u1ec7u su\u1ea5t:<\/strong> Swift \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf v\u1edbi s\u1ef1 an to\u00e0n l\u00e0m tr\u1ecdng t\u00e2m, gi\u1ea3m thi\u1ec3u c\u00e1c l\u1ed7i th\u01b0\u1eddng g\u1eb7p (nh\u01b0 l\u1ed7i con tr\u1ecf null) v\u00e0 cung c\u1ea5p hi\u1ec7u su\u1ea5t cao h\u01a1n trong nhi\u1ec1u tr\u01b0\u1eddng h\u1ee3p do \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u h\u00f3a \u1edf c\u1ea5p \u0111\u1ed9 <a href=\"https:\/\/interdata.vn\/blog\/compiler-trinh-bien-dich-la-gi\/\">tr\u00ecnh bi\u00ean d\u1ecbch<\/a>.<\/li>\n<li><strong>Kh\u1ea3 n\u0103ng t\u01b0\u01a1ng t\u00e1c (Interoperability):<\/strong> Swift v\u00e0 Objective-C c\u00f3 th\u1ec3 c\u00f9ng t\u1ed3n t\u1ea1i v\u00e0 t\u01b0\u01a1ng t\u00e1c trong c\u00f9ng m\u1ed9t d\u1ef1 \u00e1n. \u0110i\u1ec1u n\u00e0y cho ph\u00e9p c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n chuy\u1ec3n \u0111\u1ed5i d\u1ea7n c\u00e1c d\u1ef1 \u00e1n c\u0169 sang Swift ho\u1eb7c s\u1eed d\u1ee5ng c\u1ea3 hai ng\u00f4n ng\u1eef khi c\u1ea7n.<\/li>\n<li><strong>M\u1ee9c \u0111\u1ed9 s\u1eed d\u1ee5ng v\u00e0 Xu h\u01b0\u1edbng T\u01b0\u01a1ng lai:<\/strong> Swift l\u00e0 ng\u00f4n ng\u1eef \u0111\u01b0\u1ee3c Apple khuy\u1ebfn ngh\u1ecb v\u00e0 \u01b0u ti\u00ean ph\u00e1t tri\u1ec3n. H\u1ea7u h\u1ebft c\u00e1c d\u1ef1 \u00e1n m\u1edbi \u0111\u1ec1u s\u1eed d\u1ee5ng Swift. Tuy nhi\u00ean, nh\u01b0 \u0111\u00e3 \u0111\u1ec1 c\u1eadp, Objective-C v\u1eabn c\u1ea7n thi\u1ebft cho vi\u1ec7c duy tr\u00ec c\u00e1c d\u1ef1 \u00e1n k\u1ebf th\u1eeba.<\/li>\n<\/ul>\n<figure id=\"attachment_29085\" aria-describedby=\"caption-attachment-29085\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/So-sanh-Objective-C-va-Swift.jpg\" alt=\"So s\u00e1nh Objective-C v\u00e0 Swift\" width=\"800\" height=\"500\" class=\"size-full wp-image-29085\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/So-sanh-Objective-C-va-Swift.jpg 800w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/So-sanh-Objective-C-va-Swift-300x188.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/So-sanh-Objective-C-va-Swift-768x480.jpg 768w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/05\/So-sanh-Objective-C-va-Swift-750x469.jpg 750w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-29085\" class=\"wp-caption-text\">So s\u00e1nh Objective-C v\u00e0 Swift<\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"Objective-C-con-phu-hop-de-hoc\"><\/span>Objective-C c\u00f2n ph\u1ee5 h\u1ee3p \u0111\u1ec3 h\u1ecdc?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Trong b\u1ed1i c\u1ea3nh Swift \u0111ang th\u1ed1ng tr\u1ecb, c\u00e2u h\u1ecfi li\u1ec7u Objective-C c\u00f3 c\u00f2n ph\u00f9 h\u1ee3p \u0111\u1ec3 h\u1ecdc l\u00e0 r\u1ea5t ch\u00ednh \u0111\u00e1ng.<\/p>\n<ul>\n<li><strong>D\u1ef1 \u00e1n K\u1ebf th\u1eeba:<\/strong> \u0110\u1ed1i v\u1edbi nh\u1eefng ai mu\u1ed1n l\u00e0m vi\u1ec7c trong c\u00e1c c\u00f4ng ty c\u00f3 l\u1ecbch s\u1eed ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng Apple l\u00e2u n\u0103m, vi\u1ec7c hi\u1ec3u bi\u1ebft Objective-C l\u00e0 m\u1ed9t l\u1ee3i th\u1ebf l\u1edbn. C\u00f3 r\u1ea5t nhi\u1ec1u d\u1ef1 \u00e1n c\u0169 v\u1eabn \u0111ang \u0111\u01b0\u1ee3c duy tr\u00ec v\u00e0 c\u1ea7n nh\u1eefng l\u1eadp tr\u00ecnh vi\u00ean c\u00f3 kh\u1ea3 n\u0103ng \u0111\u1ecdc, hi\u1ec3u v\u00e0 s\u1eeda \u0111\u1ed5i m\u00e3 Objective-C.<\/li>\n<li><strong>Hi\u1ec3u s\u00e2u v\u1ec1 n\u1ec1n t\u1ea3ng:<\/strong> H\u1ecdc Objective-C gi\u00fap b\u1ea1n c\u00f3 c\u00e1i nh\u00ecn s\u00e2u s\u1eafc h\u01a1n v\u1ec1 c\u00e1ch ho\u1ea1t \u0111\u1ed9ng c\u1ee7a c\u00e1c framework c\u1ed1t l\u00f5i c\u1ee7a Apple \u1edf c\u1ea5p \u0111\u1ed9 th\u1ea5p h\u01a1n, \u0111\u1eb7c bi\u1ec7t l\u00e0 c\u00e1ch ch\u00fang t\u01b0\u01a1ng t\u00e1c v\u1edbi ng\u00f4n ng\u1eef C v\u00e0 runtime.<\/li>\n<li><strong>H\u1ecdc Swift d\u1ec5 h\u01a1n:<\/strong> N\u1ebfu b\u1ea1n \u0111\u00e3 c\u00f3 ki\u1ebfn th\u1ee9c v\u1ec1 Objective-C, vi\u1ec7c chuy\u1ec3n sang h\u1ecdc Swift s\u1ebd d\u1ec5 d\u00e0ng h\u01a1n nhi\u1ec1u, v\u00ec c\u1ea3 hai ng\u00f4n ng\u1eef \u0111\u1ec1u s\u1eed d\u1ee5ng chung c\u00e1c framework c\u1ee7a Apple (Cocoa\/Cocoa Touch) v\u00e0 c\u00f3 nhi\u1ec1u kh\u00e1i ni\u1ec7m t\u01b0\u01a1ng \u0111\u1ed3ng.<\/li>\n<\/ul>\n<p>N\u1ebfu b\u1ea1n l\u00e0 ng\u01b0\u1eddi m\u1edbi b\u1eaft \u0111\u1ea7u ho\u00e0n to\u00e0n v\u1edbi l\u1eadp tr\u00ecnh iOS\/macOS, h\u00e3y \u01b0u ti\u00ean h\u1ecdc Swift tr\u01b0\u1edbc. Tuy nhi\u00ean, n\u1ebfu b\u1ea1n mu\u1ed1n m\u1edf r\u1ed9ng ki\u1ebfn th\u1ee9c ho\u1eb7c c\u00f3 \u00fd \u0111\u1ecbnh l\u00e0m vi\u1ec7c v\u1edbi c\u00e1c d\u1ef1 \u00e1n c\u0169, Objective-C v\u1eabn l\u00e0 m\u1ed9t k\u1ef9 n\u0103ng \u0111\u00e1ng gi\u00e1.<\/p>\n<p>Objective-C l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh mang t\u00ednh l\u1ecbch s\u1eed v\u00e0 c\u00f3 \u00fd ngh\u0129a quan tr\u1ecdng trong s\u1ef1 ph\u00e1t tri\u1ec3n c\u1ee7a h\u1ec7 sinh th\u00e1i Apple. D\u00f9 \u0111\u00e3 nh\u01b0\u1eddng v\u1ecb tr\u00ed ch\u1ee7 \u0111\u1ea1o cho Swift, Objective-C v\u1eabn l\u00e0 m\u1ed9t ph\u1ea7n kh\u00f4ng th\u1ec3 thi\u1ebfu c\u1ee7a nhi\u1ec1u \u1ee9ng d\u1ee5ng hi\u1ec7n t\u1ea1i v\u00e0 \u0111\u00f2i h\u1ecfi nh\u1eefng l\u1eadp tr\u00ecnh vi\u00ean c\u00f3 ki\u1ebfn th\u1ee9c chuy\u00ean m\u00f4n.<\/p>\n<p>Hi\u1ec3u r\u00f5 Objective-C l\u00e0 g\u00ec kh\u00f4ng ch\u1ec9 gi\u00fap b\u1ea1n \u0111\u1ecdc hi\u1ec3u <a href=\"https:\/\/interdata.vn\/blog\/legacy-code-la-gi\/\">m\u00e3 ngu\u1ed3n c\u0169<\/a> m\u00e0 c\u00f2n cung c\u1ea5p n\u1ec1n t\u1ea3ng v\u1eefng ch\u1eafc \u0111\u1ec3 n\u1eafm b\u1eaft c\u00e1c kh\u00e1i ni\u1ec7m ph\u1ee9c t\u1ea1p h\u01a1n trong l\u1eadp tr\u00ecnh di \u0111\u1ed9ng.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Objective-C, m\u1ed9t ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh m\u1ea1nh m\u1ebd, \u0111\u00e3 \u0111\u1ecbnh h\u00ecnh n\u00ean nhi\u1ec1u \u1ee9ng d\u1ee5ng iOS v\u00e0 macOS m\u00e0 ch\u00fang ta s\u1eed d\u1ee5ng h\u00e0ng ng\u00e0y. B\u00e0i vi\u1ebft n\u00e0y, InterData s\u1ebd cung c\u1ea5p chi ti\u1ebft v\u1ec1 Objective-C, c\u00e1c \u0111\u1eb7c \u0111i\u1ec3m c\u1ed1t l\u00f5i, \u0111\u1ebfn c\u00e1c th\u01b0 vi\u1ec7n v\u00e0 Framework ph\u1ed5 bi\u1ebfn trong Objective C v\u00e0 so s\u00e1nh<\/p>\n","protected":false},"author":11,"featured_media":30256,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[140],"tags":[],"class_list":["post-29080","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-lap-trinh"],"_links":{"self":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/29080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/comments?post=29080"}],"version-history":[{"count":6,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/29080\/revisions"}],"predecessor-version":[{"id":31753,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/29080\/revisions\/31753"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media\/30256"}],"wp:attachment":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media?parent=29080"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/categories?post=29080"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/tags?post=29080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}