Bai 1 NHẬP môn objective c Bai 1 NHẬP môn objective c Bai 1 NHẬP môn objective c Bai 1 NHẬP môn objective c Bai 1 NHẬP môn objective c Bai 1 NHẬP môn objective c Bai 1 NHẬP môn objective c Bai 1 NHẬP môn objective c Bai 1 NHẬP môn objective c Bai 1 NHẬP môn objective c Bai 1 NHẬP môn objective c Bai 1 NHẬP môn objective c
Trang 1NH P MÔN Objective-C Ậ
Xin chào t t c các b n.ấ ả ạ
L p trình cho MacOS và iOS ch a lâu, nh n g nh n th y c n góp ph n vào ậ ư ư ậ ấ ầ ầ
vi c chia s ki n th c ã có ệ ẻ ế ứ đ đ c cho nh ng b n a ng a m mê H i u ữ ạ đ đ ệđề hành, ngôn ng và c v nh ng thi t b c a Apple.ữ ả ề ữ ế ị ủ
V i ki n th c c b n, mình m nh d n chia s v i các b n Mong r ng các ớ ế ứ ơ ả ạ ạ ẻ ớ ạ ằ anh, ch , em ã có kinh nghi m, chia s thêm ị đ ệ ẻ đ iOS Applications và MacOS Applications Vi t Nam trên Apple ngày càng có danh ti ng.ệ ế
Xin có vài l i tr c khi i vào chi ti t Mình có thiên h n g là s d ng ti ng ờ ư ớ đ ế ư ử ụ ế
vi t m t cách "thu n" ệ ộ ầ đ ể d hi u và d hình dung Nh ng vì thu t ng có m t ễ ể ễ ư ậ ữ ộ
s t s không d ch ra ti ng Vi t, nh m t o cho b n cái nhìn c th , tr c quan ố ừ ẽ ị ế ệ ằ ạ ạ ụ ể ự
và nh nhanh, nh lâu cho nên, trong nh ng dòng ti ng Vi t, th y có ti ng ớ ớ ữ ế ệ ấ ế Anh, b n c ng n g th c m c nhé Thanks! ạ ũ đ ắ ắ
1 Trong h n g d n này có m t s thu t ng (ho c thông tin) mà b n ch a ư ẫ ộ ố ậ ữ ặ ạ ư
hi u, hãy c ghi nh và sau này s dùng n Ví d nh ID, Tên công ty, Vì ể ứ ớ ẽ đ ụ ư
nh ng thông tin này liên quan n vi c b n c n ph i có tài kho n iOS ữ đ ệ ạ ầ ả ả
Developer ho c MacOS Developer.ặ
M u là vi c làm quen v i Objective-C ở đ ầ ệ ớ
2 Objective-C là ngôn ng ữ đư c Apple phát tri n t C và có tính h n g i ể ừ ư đ
t n g Tính h n g i t n g là gì thì chúng ta s tìm hi u sau.ư ư đ ư ẽ ể
Mình không thiên v vi c gi i thích nhi u ý ngh a c ng nh n h ngha làm gì ề ệ ả ề ĩ ũ ư đ ị ĩ Quan tr ng là mình làm ọ đ c vi c, hi u ệ ể đ ư c ngôn ng và l p trình m t cách ữ ậ ộ
c l p ho c theo nhóm hoàn h o.
3 Để b t u h c v m t ngôn ng l p trình, chúng ta c n h c v cách khai ắ đầ ọ ề ộ ữ ậ ầ ọ ề báo bi n, các lo i ki u d li u c b n, cách code và build & run n g d ng uế ạ ể ữ ệ ơ ả ứ ụ đ tiên
4 Để b t u , b n c n ph i s d ng h i u hành Mac OS (trên máy Mac ắ đầ ạ ầ ả ử ụ ệđề
ho c Hackintosh) và d nhiên là ph i cài n g d ng Xcode (do Apple phát tri n ặ ĩ ả ứ ụ ể
và cung c p mi n phí) ấ ễ Để nh n d ng n g d ng Xcode thì b n nhìn vào hình ậ ạ ứ ụ ạ nhé!
Trang 25 M Xcode lên -> New Project -> Ch n Single View Application -> Trong ở ọ
c a s m i hi n ra, b n ử ổ ớ ệ ạ để ý vào nh ng thông tin sau:ữ
- Product Name (Tên ng d ng, có th vi t ch hoa, ch thứ ụ ể ế ữ ữ ường, ch Trung ữ
Qu c, Nh t B n, tho i mái)ố ậ ả ả
- Organization Name (Tên công ty, n u b n là cá nhân, có th ế ạ ể để tên b n)ạ
- Company Identifier (Mã ch ng th c công ty, ho c có th là cá nhân Vì ây ứ ự ặ ể đ
là bài Test đầu tiên, cho nên ch này, b n có th i n là "com.education")ỗ ạ ể đ ề
- Class Prefix (Ti n t ề ố đứng trước tên c a Class, b n có th i n ho c không, ủ ạ ể đ ề ặ
n u tò mò, b n hãy th và xem có gì thay ế ạ ử đổi hay không sau khi đọc và th c ự hành xong bài này)
- Devices (Thi t b mà b n l p trình ng d ng, Universal ngh a là c 2 thi t b ế ị ạ ậ ứ ụ ĩ ả ế ị iPhone và iPad, ây b n ch n iPhone nhé, vì sao, ở đ ạ ọ để ạ b n build cho d ễ dàng, và g n màn hình, không c n cu n chu t ọ ầ ộ ộ để xem n i dung, và bài vi t ộ ế này yêu c u c ng r t ầ ũ ấ đơn gi n)ả
- Cu i cùng 3 d u tích, b n ch n Use Storyboards và Use Automatic ố ở ấ ạ ọ
Reference Counting nhé
- Cu i cùng là Next, ch n n i l u Project này.ố ọ ơ ư
Trang 46 ã xu t hi n c a s dành cho b n l p trình ch a? N u ch a ho c có l i gì Đ ấ ệ ử ổ ạ ậ ư ế ư ặ ỗ thì b n ạ đọ ỹ ạ ước k l i h ng d n 5 nhé.ẫ
Lúc này, c a s Xcode s trình bày Project cho b n thi t k giao di n và l p ử ổ ẽ ạ ế ế ệ ậ trình
B t ắ đầ u thôi
7 Click chu t vào MainStoryboard.storyboard, b n s th y m t hình tộ ạ ẽ ấ ộ ương t ự
nh màn hình iPhone Tên c a nó là ViewController và sau này mình s g i ư ủ ẽ ọ
ó là View (ngh a là ó là 1 màn hình trong ng d ng c a b n, ng d ng có
th có 1 ho c nhi u View nhé).ể ặ ề
L i b m ti p vào "ạ ấ ế ViewController.m" b n s th y toàn ch , ó là n i b n vi t ạ ẽ ấ ữ đ ơ ạ ế code
8 Mình gi i thích m t chút:ả ộ
- Storyboard: ó là n i b n thi t k giao di n (Button, TextField, Switch, Map, đ ơ ạ ế ế ệ WebView, )
- ViewController.h và ViewController.m (h vi t t t c a Header, m vi t t t c a ế ắ ủ ế ắ ủ Main, b n t hi u nhé): 2 file này là n i mà b n s vi t code.ạ ự ể ơ ạ ẽ ế
- 3 file này liên k t v i nhau nh th nào? Khi b n thi t k xong giao di n ế ớ ư ế ạ ế ế ệ trong Storyboard, b n ánh x các ạ ạ đố ượi t ng t Storyboard sang fileừ h,
file m s tri u g i và làm vi c v i các ẽ ệ ọ ệ ớ đố ượi t ng mà b n ã ánh x (ho c khai ạ đ ạ ặ báo) khi c n.ầ
9 B t ắ đầ đ ạu o n code đơn gi n nh t nhé.ả ấ
B n click vào fileạ m Mình phân tích s v file này cho b n hi u.ơ ề ạ ể
Trang 5- (void)viewDidLoad: ây là 1 hàm, bây gi , hàm này s ch y đ ờ ẽ ạ đầu tiên khi ngứ
d ng v a ụ ừ được m lên (m lên ch không ph i là g i nó t TaskBar trên thi tở ở ứ ả ọ ừ ế
b nhé Sau này b n s phân bi t 2 i u này) N i dung trong hàm này s ị ạ ẽ ệ đ ề ộ ẽ
c ch y l n l t t trên xu ng d i, tính t d u
đượ ạ ầ ượ ừ ố ướ ừ ấ {đầu tiên đến d uấ } cu i ố cùng
- Th thôi, bài này quan tâm m i 1 cái ó hi hiế ỗ đ
10 Đề bài hôm nay là: "Vi t ng d ng ế ứ ụ đơn gi n, c ng hai s nguyên cho ả ộ ố
trước Sau ó in ra c a s Log k t qu tính đ ử ổ ế ả được."
11 Phân tích (t i sao có bạ ước này, mình vi t ch y u cho nh ng b n ch a ế ủ ế ữ ạ ư
h c l p trình, ho c m i b t ọ ậ ặ ớ ắ đầu h c l p trình, cho nên các anh, ch ọ ậ ị đừng trách dài dòng nhé, mình k càng cho các b n y mà) Bài toán s c n ph i có 2 s ỹ ạ ấ ẽ ầ ả ố nguyên, sau ó s có 1 "bi n" l u k t qu và cu i cùng s có 1 hàm dùng đ ẽ ế ư ế ả ố ẽ để
xu t k t qu tra c a s Log.ấ ế ả ử ổ
12 Trong ViewDidLoad, b n b t ạ ắ đầu gõ vào nh sau: (dư ưới dòng[super viewDidLoad];)
int soA = 1;
int soB = 2;
int Tong = soA + soB;
NSLog(@"%i", Tong);
Gi i thích:ả
int soA: khai báo m t bi n có tên là soA và có ki u là int (integer - s nguyên).ộ ế ể ố Toán t = sau khi khai báo làm nhi m v gán giá tr 1 cho soA m i khai báo.ử ệ ụ ị ớ Lúc này bi n soA có giá tr 1.ế ị
int soB: khai báo m t bi n có tên là soB và có ki u là int (integer - s nguyên).ộ ế ể ố Toán t = sau khi khai báo làm nhi m v gán giá tr 2 cho soB m i khai báo.ử ệ ụ ị ớ Lúc này bi n soB có giá tr 2.ế ị
int Tong = soA + soB
Trang 6Toán t = gán t ng c a soA và soB cho bi n Tong v a ử ổ ủ ế ừ được khai báo v i ớ
ki u int.ể
NSLog: là hàm cho phép xu t m t chu i (hi n t i, v i ấ ộ ỗ ệ ạ ớ đề bài này, b n hi u ạ ể
nh v y) ra c a s Log.ư ậ ử ổ
Trong này có nh ng i u c n l u ý @"" là các ký t b t bu c ph i có v i ữ đ ề ầ ư ự ắ ộ ả ớ hàm này N i dung c n xu t ra n m trong d u "" Trong d u này mình ộ ầ ấ ằ ấ ấ để %i, ngh a là mình l y giá tr t bi n Tong sau d u ph y và thay th vào ch có ĩ ấ ị ừ ế ấ ẩ ế ỗ
d u %i T i sao l i là %i, d u % là b t bu c và ch i ngh a là vi t t t cho ấ ạ ạ ấ ắ ộ ữ ĩ ế ắ
integer, xu t m t s nguyên ấ ộ ố đấy b n ạ ạ
Bây gi b n ã hi u cách ờ ạ đ ể để khai báo bi n có ki u integer, cách gán giá tr ế ể ị cho bi n, cách s d ng toán t = và toán t +, ngoài ra còn bi t hàm nào xu tế ử ụ ử ử ế ấ giá tr ra c a s Log.ị ủ ổ
13 Bây gi Build & Run (ch y ng d ng).ờ ạ ứ ụ
ch y ng d ng, b n b m t h p phím Command + R, (R là vi t t t c a t
Run ó b n) ho c b n b m vào d u m i tên trên thanh công c , ngoài cùngđ ạ ặ ạ ấ ấ ũ ở ụ bên trái và ch c ch n r ng Scheme b n ch n iOS Simulator nhé Thoáng ắ ắ ằ ở ạ ọ
m t cái b n s th y k t qu nh hình.ộ ạ ẽ ấ ế ả ư
14 Ch y xong r i, ạ ồ đến lúc này là lúc b n sáng t o B n ch th y m i dòng ạ ạ ạ ỉ ấ ỗ
tương t nh th này:ự ư ế
Trang 72012-10-13 22:52:15.132 Test - 1[1025:c07] 3
Ngh a là k t qu c a b n ch hi n ra là 3 ĩ ế ả ủ ạ ỉ ệ đấy
B n hãy sáng t o b ng cách thay ạ ạ ằ đổi trong hàm Log nh th này:ư ế
NSLog(@"Tong bang: %i", Tong);
Xem th ra cái gì nhé.ử
15 Bây gi ã hi u c b n r i, mình s cung c p cho b n nh ng ki n th c bờ đ ể ơ ả ồ ẽ ấ ạ ữ ế ứ ổ ích sau:
- Các toán t : - + * / % =ử
- Các ki u d li u: int (s nguyên), float (s th c)ể ữ ệ ố ố ự
16 Bài t p cho các b n th giãn:ậ ạ ư
a Vi t ng d ng tính t ng c a 2 s th c cho trế ứ ụ ổ ủ ố ự ước
b Cho trước 2 s th c khác 0, tính và xu t ra c a s Log T ng, Hi u, Tích, ố ự ấ ử ổ ổ ệ
Thương c a 2 s ó m t cách l n lủ ố đ ộ ầ ượt (Ngh a là: a-b, b-a, a+b, b+a, b n ĩ ạ
t lo i tr phép tính trùng nhé)ự ạ ừ
c Cho trước 10 s nguyên, s p x p c b n và xu t ra c a s Log các s ố ắ ế ơ ả ấ ử ổ ố nguyên ó theo th t l n d n và bé d n, m i s cách nhau b ng d u sao (*).đ ứ ự ớ ầ ầ ỗ ố ằ ấ
17 Ký t thay th cho ki u float là %f nhé b n.ự ế ể ạ
Bài đầu tiên này mình vi t c ng ã r t lâu.ế ũ đ ấ
Hôm nay m i tham gia Tinh t nên gi ớ ế ờ đăng t i lên cho các b n.ả ạ
Mong nh n ậ đượ c s chia s c a các anh/ch i tr ự ẻ ủ ị đ ướ c.
Mong nh n ậ đượ c s ng h c a các b n quan tâm ự ủ ộ ủ ạ đế n Xcode và Objective-C
c ng nh ang theo h c nó ũ ư đ ọ
Cùng th c hành nhu n nhuy n, ự ầ ễ đọc thêm các tài li u khác trên m ng (Gi ệ ạ ờ bác google tìm giúp) và ch bài vi t ti p theo, b n nhé.ờ ế ế ạ