tài liệu hướng dẫn xây dựng Ứng dụng ios (iphone/ipad)

420
2013 Nguyn Anh Tip - Cao Thanh Vàng Đại Hc Lc Hng 20/11/2013 Tài Liệu Hướng Dn Xây Dng ng Dng iPhone

Upload: cao-thanh-vang

Post on 20-Jul-2015

823 views

Category:

Education


12 download

TRANSCRIPT

  • 2013

    Nguyn Anh Tip - Cao Thanh Vng

    i Hc Lc Hng

    20/11/2013

    Ti Liu Hng Dn Xy Dng ng Dng iPhone

  • MC LC

    CHNG I CHUN B TRC KHI BT U XY DNG NG DNG ........... 1

    1.1 CHUN B H IU HNH MAC OS .................................................................... 2

    1.1.1 Lp Trnh ng Dng Iphone Trn Windows .................................................. 2

    1.1.2 S Dng Sn Phm Chnh Hng Apple ............................................................ 3

    1.1.3 Chy H iu Hnh Mac Os Trn Pc/Laptop Intel/Amd Ti Sao Khng?

    ....................................................................................................................................... 5

    1.2 PHN MM XCODE .................................................................................................. 7

    1.2.1 Ci t Thng Qua Bn Ti V T Trang Dnh Cho Developer .................. 8

    1.2.2 Ci t Thng Qua Apple Mac Store ............................................................. 10

    1.2.3 Ci t T Bn Xcode c Chia S Trn Internet .................................... 11

    CHNG II TM HIU XCODE V IOS SIMULATOR ......................................... 12

    2.1 TM HIU XCODE 5 ................................................................................................ 13

    2.1.1 Gii Thiu V Xcode 5 ..................................................................................... 13

    2.1.2 Thao Tc To ng Dng Mi ......................................................................... 16

    2.1.3 Tm Hiu Giao Din Xcode V Mt S Tnh Nng ....................................... 20

    2.1.4 Thit K Giao Din ........................................................................................... 26

    2.1.5 Vit Code ........................................................................................................... 29

    2.1.6 Thc Thi V Kim Tra Li Ca ng Dng ................................................... 34

    2.2 TM HIU IOS SIMULATOR ................................................................................. 38

    2.2.1 Gii Thiu iOS Simulator ................................................................................ 38

    2.2.2 Tm Hiu iOS Simulator .................................................................................. 38

    CHNG III NGN NG OBJECTIVE-C ................................................................ 48

    3.1 GII THIU NGN NG OBJECTIVED-C ........................................................ 49

    3.2 KHAI BO BIN - CCH S DNG ..................................................................... 49

    3.2.1 Bin ..................................................................................................................... 49

    3.2.2 Quy Tc t Tn ............................................................................................... 50

    3.3 KIU D LIU .......................................................................................................... 50

  • 3.4 PHP TON ............................................................................................................... 51

    3.5 CH THCH CODE .................................................................................................. 51

    3.6 XUT D LIU RA MN HNH ............................................................................ 52

    3.7 FUNCTION ................................................................................................................. 54

    3.7.1 nh Ngha ......................................................................................................... 54

    3.7.2 Phng Thc Khng C Tham S Truyn Vo ........................................... 54

    3.7.3 Phng Thc C 1 Tham S Truyn Vo ...................................................... 55

    3.7.4 Phng Thc C Nhiu Tham S Truyn Vo.............................................. 55

    3.8 CU TRC IU KIN ........................................................................................... 57

    3.8.1 Cu Lnh If ....................................................................................................... 57

    3.8.2 Cu Lnh If Else ............................................................................................ 57

    3.8.3 Cu Lnh Switch - Case ................................................................................... 58

    3.9 Cu Trc Lp .............................................................................................................. 59

    3.9.1 Vng Lp For .................................................................................................... 59

    3.9.2 Vng Lp While ................................................................................................ 59

    3.9.3 Vng Lp Do-While .......................................................................................... 60

    3.10 MNG........................................................................................................................ 61

    3.10.1 nh Ngha ....................................................................................................... 61

    3.10.2 Mng Nsarray ................................................................................................. 61

    3.11 CHUI I TNG NSSTRING...................................................................... 62

    3.11.1 Khi To Chui ............................................................................................... 62

    3.11.2 i Tng NSString ....................................................................................... 63

    3.11.3 Tm Kim Bn Trong Chui .......................................................................... 63

    3.11.4 Tm Chui V Thay N Thnh Chui Khc ................................................ 64

    3.11.5 Xo Ni Dung Bn Trong Chui ................................................................... 64

    3.11.6 Ct Chui ......................................................................................................... 65

    3.11.7 Chn K T Vo Trong Chui ...................................................................... 66

    3.11.8 Chn K T Vo Cui Chui ........................................................................ 66

    3.11.8 So Snh Chui ................................................................................................. 67

    3.11.9 So Snh Chui Vi K T u V Cui Chui ........................................... 67

  • 3.11.10 Chuyn i Hnh Dng Ca Ch................................................................ 68

    3.11.11 Chuyn Chui Thnh Dng S .................................................................... 70

    CHNG IV MT S THAO TC C BN ............................................................. 72

    4.1 APP ICON LOADING SCREEN .......................................................................... 73

    4.1.1 App Icon............................................................................................................. 73

    4.1.2 Loading Screen .................................................................................................. 75

    4.2 THAY I APP NAME ............................................................................................ 76

    4.3 N STATUS BAR ...................................................................................................... 78

    4.4 BACKGROUND ......................................................................................................... 79

    4.4.1 Background Image ............................................................................................ 79

    4.4.2 Background Color ............................................................................................ 83

    4.5 THM FRAMEWORK ............................................................................................. 84

    CHNG V MT S I TNG C BN ............................................................ 86

    5.1 I TNG LABEL BUTTON TEXT FIELD ............................................... 87

    5.1.1 Gii Thiu .......................................................................................................... 87

    5.1.2 V D .................................................................................................................. 90

    5.2 KT NI C S D LIU VI SQLITE ............................................................. 94

    5.2.1 Gii Thiu .......................................................................................................... 94

    5.2.2 Ci t Sqlite Manager Cho Firefox .............................................................. 94

    5.2.3 Cu Hnh ng Dng Tng Tc Vi Sqlite ............................................. 95

    5.2.4 Cc Hm Trong Sqlite ...................................................................................... 96

    5.2.5 V D .................................................................................................................. 99

    5.3 S DNG CAMERA IPHONE .............................................................................. 109

    5.3.1 Gii Thiu ........................................................................................................ 109

    5.3.2 V D ................................................................................................................ 109

    5.4 UIIMAGE .................................................................................................................. 113

    5.4.1 Gii Thiu ........................................................................................................ 113

    5.4.2 Cc nh Dng nh H Tr Trn Iphone ................................................... 114

    5.4.3 V D ................................................................................................................ 114

    5.5 UIALERT VIEW ...................................................................................................... 121

  • 5.5.1 Gii Thiu ........................................................................................................ 121

    5.5.2 c im .......................................................................................................... 121

    5.5.3 V D ................................................................................................................ 122

    5.6 UISLIDER ................................................................................................................. 124

    5.6.1 Gii Thiu ........................................................................................................ 124

    5.6.2 c im .......................................................................................................... 125

    5.6.3 V D ................................................................................................................ 125

    5.7 UIWEBVIEW ........................................................................................................... 128

    5.7.1 Gii Thiu ........................................................................................................ 128

    5.7.2 V D ................................................................................................................ 129

    5.8 ACTIVITY INDICATOR VIEW ............................................................................ 132

    5.8.1 Gii Thiu ........................................................................................................ 132

    5.8.2 V D ................................................................................................................ 132

    5.9 ACTIONSHEET ....................................................................................................... 136

    5.9.1 Gii Thiu ........................................................................................................ 136

    5.9.2 c im .......................................................................................................... 136

    5.9.3 V D ................................................................................................................ 137

    5.10 MK MAP VIEW ..................................................................................................... 138

    5.10.1 Gii Thiu ...................................................................................................... 138

    5.10.2 V D .............................................................................................................. 139

    5.11 TABLE VIEW CONTROLLER ........................................................................... 143

    5.11.1 Gii Thiu ...................................................................................................... 143

    5.11.2 V D .............................................................................................................. 143

    5.12 SEARCH BAR ........................................................................................................ 147

    5.12.1 Gii Thiu ...................................................................................................... 147

    5.12.2 V D .............................................................................................................. 148

    5.13 TRUYN D LIU GIA CC VIEW .............................................................. 152

    5.13.1 Gii Thiu ...................................................................................................... 152

    5.13.2 V D .............................................................................................................. 152

    CHNG VI HNG DN XY DNG PHN MM .......................................... 157

  • 6.1 PHN MM KIM TRA M VIN ........................................................................ 158

    6.1.1 Gii Thiu ........................................................................................................ 158

    6.1.2 Chun B .......................................................................................................... 158

    6.1.3 Cu Trc Phn Mm ...................................................................................... 158

    6.1.4 C Ch Vn Hnh ........................................................................................... 159

    6.1.5 Tnh Nng ........................................................................................................ 160

    6.1.6 Tin Hnh ........................................................................................................ 163

    6.2 PHN MM TM KIM A IM XUNG QUANH (PLACESNEARME) .. 220

    6.2.1 Gii Thiu ........................................................................................................ 220

    6.2.2 Chun B .......................................................................................................... 220

    6.2.3 Cu Trc Phn Mm ...................................................................................... 220

    6.2.4 C Ch Vn Hnh Ca Placesnearme .......................................................... 221

    6.2.5 Tnh Nng ........................................................................................................ 222

    6.2.6 Tin Hnh ........................................................................................................ 226

    CHNG VII A NG DNG LN IPHONE ...................................................... 385

    7.1 GII THIU ............................................................................................................. 386

    7.2 QU TRNH CHUN B ........................................................................................ 386

    7.3 TIN HNH ............................................................................................................. 388

    CHNG VIII MT S VN KHC ................................................................ 396

    8.1 XY DNG NG DNG CHO IOS 6 - IOS 6.1 TRN XCODE 5 ................... 397

    8.2 XY DNG NG DNG H TR NHIU VERSION IOS ............................. 403

    CU HI THNG GP ............................................................................................ 407

    PH LC ........................................................................................................................ 411

  • LI M U

    Ngy nay xu hng s dng Smartphone v my tnh bng ang gia tng nhanh

    chng trn th gii ni chung v Vit Nam ni ring, trong Vit Nam hin ang ng

    th hai th gii v tc tng trng smartphone & my tnh bng vi tc tng trng

    266%. Android, iOS, Windows Phone l nhng h iu hnh chy trn Smartphone v

    my tnh bng ph bin nht th gii: Android 75%, iOS 17,3%, Windows Phone 3,2%.

    Ti Vit Nam, theo nghin cu ca IDC, vo thi im qu 2/2013, iOS ang chim t l

    1.6% trn tng s thit b phn phi ti Vit Nam, ng th ba sau Android v Windows

    Phone.

    Cng vi s tng trng ca Smartphone v cc h iu hnh chy trn Smartphone,

    s lng ng dng cho cc h iu hnh ngy cng tng, tnh cho n ht nm 2012, s

    lng ng dng iOS trn Apple App Store hn 775.000 ng dng v Google Play

    c hn 700.000 ng dng.Vi s pht trin quy m ln ca ng dng, nhu cu tm hiu

    v lp trnh ng dng cho cc h iu hnh cng tng dn.

    Tuy nhin, thc tin cho thy, vic tm hiu cng nh tham gia cc lp hc v lp

    trnh ng dng iPhone Vit Nam cn nhiu hn ch v kh khn.Cc lp dy lp trnh

    ng dng iPhone ch mi xut hin nhiu trong thi gian gn y, do s lng vn cn

    hn ch.

    Bn cnh ngun ti liu ting Vit cn t, vic tm hiu v s dng cng c lp

    trnh cng nh tham kho ti liu ting Anh v lp trnh ng dng iPhone i hi ngi

    tm hiu phi tiu tn mt khong thi gian di cng nh c mt t hiu bit v lp trnh

    v kh nng c hiu ting Anh tt. Hn na cc ti liu ting Vit do cc trung tm

    ging dy lp trnh iPhone bin son ch lu hnh ni b, ngi tm hiu buc phi chi

    mt khon tin tham d lp hc mi c th c c nhng ti liu ny.

    Vi mong mun tm hiu cch xy dng ng dng iPhone c thm kin thc mi,

    gip ch cho qu trnh lm vic sau khi ra trng cng nh gim bt nhng kh khn cho

    ngi mi bt u tm hiu v lp trnh ng dng trn iPhone, nhm nghin cu thc

  • hin nghin cu, xy dng mt s ng dng trn iPhone da trn kin thc tm hiu c,

    t tng hp v xy dng thnh ti liu Hng dn xy dng ng dng trn iPhone. Vi

    nhng v d ring cho tng i tng, ngi c s d dng nm bt v hiu r cch s

    dng, chc nng ca tng i tng khc nhau. Bn cnh ti liu cn km theo hng

    dn chi tit tng bc xy dng mt vi ng dng thc t m nhm nghin cu

    thc hin c trong qu trnh nghin cu. Hi vng rng ni dung ca ti liu ny s gip

    ch phn no cho mi ngi khi bt u tm hiu v lp trnh iPhone, t c th tit

    kim bt thi gian cho qu trnh tm hiu.

    Mi kin ng gp xin lin lc qua email [email protected] hoc

    [email protected]. Rt mong nhn c s gp chn thnh t mi ngi ti liu

    hng dn ngy cng hon thin hn.

    Nhm nghin cu

    Nguyn Anh Tip Cao Thanh Vng

  • CHNG I

    CHUN B TRC KHI BT U XY DNG NG DNG

    Qu trnh chun b trc khi bt u lp trnh ng dng trn iPhone l qu trnh c

    bn m bn phi chun b cho tht k lng. Qu trnh ny s chun b cho bn cc iu

    kin cn thit c th thun li bt u tm hiu v lp trnh ng dng trn iPhone.

    Trong chng ny, bn s c gii thiu s lc v qu trnh chun b, cc cch thc

    bn c c h iu hnh Mac OS v b cng c Xcode. Hai iu kin ny l iu kin

    cn thit bt u lp trnh iOS.

    Tuy nhin ni dung phn chun b h iu hnh Mac OS ch c gii thiu s

    lc vi bn cc cch thc c c mt h iu hnh Mac OS n nh (cch thc ci

    t Mac OS trn thit b Intel/AMD) cho vic lp trnh ch khng i sau vo hng dn

    c th bi iu thuc v mt lnh vc kin thc khc i hi phi o su tm hiu.

  • 2

    1.1 CHUN B H IU HNH MAC OS

    Vic lp trnh ng dng cho iPhone i hi bn phi s dng b cng c do chnh

    Apple cung cp gi l Xcode, v b cng c ny chy trn nn tng ca h iu hnh Mac

    OS. Nu bn mun bt u cho vic xy dng ng dng cho iPhone th bn nn bt u

    ngay vi vic chun b cho mnh mt chic my chy h iu hnh Mac OS. Sau y

    chng ti s gii thiu cho bn mt s cch thc bn c th s hu cho mnh mt h

    iu hnh Mac OS ph hp.

    1.1.1 Lp Trnh ng Dng Iphone Trn Windows

    Nu bn mun lp trnh ng dng cho iPhone, nhng li mun thc hin trn mi

    trng Windows c th thao tc thm cc cng vic khc trn mi trng ny, la

    chn tt nht cho bn lc ny chnh l s dng mt my o chy h iu hnh Mac OS

    lp trnh. Tuy nhin nu bn la chn phng n ny, cu hnh my ca bn phi mnh,

    CPU x l tt, v bn nn dnh t nht 2G RAM cho my o hot ng tt hn.

    Lm cch no ti c th s hu mt my o chy Mac OS cho ring mnh?

    Bn c hai cch c th s hu mt my o chy Mac OS cho mnh.

    Cch mt l bn chun b mt a ci Mac OS v phn mm h tr to my o nh

    VMWare , Virtualbox sau bn tin hnh ci t bnh thng bng tay. a ci t

    Mac OS bn c th mua cc tim bn a phn mm. Hoc bn c th ti v trn mng

    mt a ci Mac OS ui .iso ( Thng th trn mng c a ci ui .dmg, bn phi

    chuyn i qua ui .iso c h tr tt nht t phn mm to my o).

    Cch th hai l bn ti v mt my o hon chnh c ci t sn Mac OS, sau

    m ln bng phn mm chy my o l bn c th c mt h iu hnh Mac OS.

    Bn nn truy cp vo

    Din n Tinh T: www.tinhte.vn/forums/chuyen-de-hackintosh.361/ .

    Cng ng Hackinosh: www.facebook.com/groups/hackintoshvietnam/.

  • 3

    tm hiu thm tin trnh ci t my o, cc vn xy ra trong qu trnh ci.

    Ngoi ra bn cng c th tm cc my o chy Mac OS ci t sn ti

    Soul Dev Team: http://www.souldevteam.net/ .

    1.1.2 S Dng Sn Phm Chnh Hng Apple

    Nu gia nh bn c iu kin, bn c th mua ngay cho mnh mt chic my Apple

    chnh hng, s dng trn vn tnh nng cng nh s h tr ti a t Apple.

    Bn truy cp vo www.apple.com , chn Store, sau la chn Shop Mac n

    chuyn mc bn cc sn phm chy Mac OS ca Apple. Ti y bn c th la chn

    nhiu loi sn phm khc nhau nh Macbook Air, Macbook Pro, iMac, Mac mini.

    Hnh 1.1 Truy cp Store Mac OS

    Ty theo s thch v nhu cu, cng nh kh nng ti chnh m bn la chn cho

    mnh mt chic my thch hp. Bn c th thanh ton cho Apple v i hng c

    chuyn v, hoc tm n cc trung tm bn hng ca Apple gn nh mua. Hoc bn

    cng c th truy cp vo a ch www.apple.com/asia/reseller/ tm kim cc a im

    bn hng ca Apple gn nht. Vit Nam, bn hy truy cp vo trang

  • 4

    www.icenter.com.vn c th nhanh chng tm c ca hng bn sn phm ca Apple

    gn nht ni bn sng. Vic ny gip bn c th nhanh chng c trong tay mt sn phm

    chnh hng Apple, thanh ton tin li m khng phi tn thi gian cho vic chuyn khon

    thanh ton cng nh ch i vn chuyn sn phm t nc ngoi v.

    Nu mun tit kim thm chi ph bn c th truy cp

    www.store.apple.com/us/browse/home/specialdeals/mac tm mua cc gim phm

    Refurbished ca Apple vi mc gi thp hn.

    Hnh 1.2 Store Refurbished

    Nu bn mun mua my chnh hng Apple vi gi r hn na, th vic mua li sn

    phm qua s dng l mt gi ng cho bn cn nhc. i vi vic mua li my

    qua s dng bn c th vo mt s trang mua bn c cht lng tm mua sn phm ph

    hp vi ti tin. Chng hn nh cc trang www.5giay.vn, www.nhattao.com .. l cc

    trang vi rt nhiu s chn, cc dng my a dng cng nh mc tin khc nhau, ty theo

    nhu cn v iu kin cho php m bn c th tm c mt chic my ng mnh.

  • 5

    Hnh 1.3 Mua li my c

    Nu bn la chn mua my c, phi la chn tht k lng t i my n cu hnh, tt

    nht nn chn mua nhng my sn xut trong 1-2 nm gn nht, c bit bn phi kim

    tra xem my mnh mun mua c h tr nhng phin bn Mac OS no. V sao phi nh

    vy ? Bi v Xcode 5 chy trn Mac OS 8 tr ln, nu bn chn mua my ch h tr Mac

    OS 7 tr v trc, th bn khng th ci c Xcode 5 m ch c th s dng cc phin

    bn thp hn.

    1.1.3 Chy H iu Hnh Mac Os Trn Pc/Laptop Intel/Amd Ti Sao Khng?

    Vic ci Mac OS ln chic PC hay laptop ca bn cng l mt phng php tt

    va c c h iu hnh Mac OS, va c thm kinh nghim trong qu trnh ci t, v

    hn na l tit kim c chi ph. C hai dng ci t hackintosh l ci t t mt bn

    c chnh sa sn nh iAtkos ( h tr dng my intel ) hay Niresh (h tr thm dng

    my AMD) v ci t t a gc ca Apple (Mac OS Retail) . Dng ci t t a gc ca

    Apple i hi bn sau khi ci t phi tin hnh thm nhiu thao tc khc c th c

  • 6

    c mt h iu hnh Mac OS hon thin, cn i vi bn chnh sa sn th gn nh

    khng iu chnh thm nhiu.

    Hnh 1.4 iATKOS v Niresh

    Bn c hai phng n la chn nu mun chy Mac OS ln my ca mnh: t ci

    th cng v thu ngi ci t. Nu bn thu ngi ci t, chi ph thng khong t

    100.000 vn n 200.000 vn ty theo yu cu ci t nh th no.

    Hnh 1.5 Tm kim Ci t Mac OS cho PC/Laptop

  • 7

    Vi vic thu ngi ci, bn ch gn bo cu hnh my cho ngi ci t h quyt

    nh v cho bn li khuyn. Bi vic ci t Hackintosh ph thuc rt nhiu vo tng

    thch phn cng ca thit b vi h iu hnh Mac OS, do khng phi my no cng c

    th ci c. Tuy nhin phng n ny gip bn vt v hn, cng nh tit kim c

    thi gian hn.

    Mt phng n khc l bn t ci. Vi cch la chn ny, bn phi tm hiu v

    Hackintosh, cng nh cc lu khi ci t, cc li xy ra v cch khc phc Nu bn

    la chn cch ny, bn nn tm hiu mt s din n, hi nhm chuyn v Hackintosh

    c thm kin thc, kinh nghim v s tr gip t cng ng. y chng ti gii thiu

    cho bn hai a ch uy tn v Hackintosh:

    - Chuyn Hackintosh trn Tinh T a ch: www.tinhte.vn/forums/chuyen-

    de-hackintosh.361/

    - Group Hackintosh We Love Mac a ch:

    www.facebook.com/groups/hackintoshvietnam/

    Ti y bn s tm c nhiu ti liu hng dn cng nh s gip tn tnh ca

    mi ngi, hi vng bn s c mt h iu hnh Mac OS hon chnh.

    Bn c bit:

    - Phn cng ca my tnh rt quan trng khi quyt nh ci Mac OS ln my tnh thng

    thng v khng phi phn cng no cng c th tm c Kext (C th hiu ging nh

    Driver cho thit b trn h iu hnh Windows.

    - Card VGA Intel Graphic HD 4000 v Intel Graphic HD 3000 c Mac OS h tr Kext

    rt tt.

    - a phn dng HP Probook h tr tt Hackintosh.

    1.2 PHN MM XCODE

    Sau khi bn c c h iu hnh Mac OS, vic tip theo bn phi lm trc khi

    c th bt u lp trnh ng dng iPhone l ci b cng c lp trnh Xcode do Apple cung

  • 8

    cp cho cc nh lp trnh ng dng, cc nh lp trnh c th pht trin ng dng cho c

    iOS ln Mac OS. Vic ci t Xcode c nhiu cch, ty theo bn chn la cch no ph

    hp vi bn thn.

    1.2.1 Ci t Thng Qua Bn Ti V T Trang Dnh Cho Developer

    Bn truy cp vo trang www.developer.apple.com tin hnh ti phin bn Xcode

    mi nht ( hoc cc phin bn khc ty theo nhu cu ca bn).

    Hnh 1.6 Ti Xcode t trang Developer

    Tip theo bn la chn View Download.

  • 9

    Hnh 1.7 Chn View Download

    Apple s yu cu bn ng nhp ti khon Developer ID tip tc.

    Hnh 1.8 ng nhp Developer ID

    Sau khi bn ng nhp bng ti khon Developer xong, thc hin theo hng dn,

    bn s ti v c phn mm Xcode v tin hnh ci t trn my.

  • 10

    Vi ti khon Developer ID vi gi 99$ / nm, bn s lun c Apple cp nht thng tin

    cng ngh mi, cng nh h tr, s dng trc cc phin bn mi ca Apple nh cc bn

    preview iOS, Mac OS, Xcode

    1.2.2 Ci t Thng Qua Apple Mac Store

    y l cch ph bin nht, v vic ti Xcode trn Apple Store l min ph, v ch cn

    bn c mt ti khon Apple ID l c, khng yu cu phi l Developer ID.

    Bn ch cn truy cp vo Apple Mac Store v tm kim Xcode, bn s thy kt qu

    l phn mm Xcode Free, cng vic by gi l bn ch cn Install v ch i hon tt.

    Hnh 1.9 Ci t Xcode qua Apple Mac Store

  • 11

    Trong App Store bn cng c th tm c nhiu gio trnh, bi ging v lp trnh

    ng dng bng Xcode.

    1.2.3 Ci t T Bn Xcode c Chia S Trn Internet

    i vi cch ci t ny, bn ch cn truy cp internet v tm bn ci t Xcode

    c chia s trn mng v ti v ci t trn my ca bn. Tuy nhin bn s mt thi gian

    tm kim trn internet tm c bn ci t va , tc ti tt nht.

  • CHNG II

    TM HIU XCODE V IOS SIMULATOR

    Chng ny s mang n cho bn kin thc v b cng c Xcode cng nh cng c

    gi lp h iu hnh iOS l iOS Simulator. Qua nhng kin thc c cung cp, bn s

    nm r v giao din, mt s tnh nng, cc button v cng dng ca n trn Xcode v iOS

    Simulator. Ngoi ra, bn s c hng dn mt s thao tc c bn khi s dng Xcode,

    iOS Simulator t bn s d dng hn trong vic s dng b cng c ny trong qu

    trnh lp trnh ng dng iPhone v sau.

  • 13

    2.1 TM HIU XCODE 5

    2.1.1 Gii Thiu V Xcode 5

    Phn mm Xcode l b cng c do Apple cung cp cho cc lp trnh vin lp

    trnh ng dng cho cc thit b chy h iu hnh ca Apple. Phin bn mi nht hin nay

    ca Xcode l bn Xcode 5 trn trang Developer ca Apple.

    Hnh 2.1 Phin bn Xcode 5 trn trang Apple

    Giao din lm vic ca Xcode gm c 5 phn chnh : Toolbar, Editor area,

    Navigator area, Debug area, Utility area.

    - Debug area : y l vng h tr bn trong qu trnh debug li ca chng

    trnh.

    - Toolbar area: vng cha cc cng c tin ch gip bn c th n gin trong

    vic chy, debug ng dng, la chn iOS Simulator, ng m cc vng khc

    - Editor area: vng bn thit k giao din, vit v chnh sa code ca

    chng trnh.

    - Utility area: vng ny cho php bn ty chnh cc tham s, gi tr ca cc i

    tng trn giao din, cng nh cho php bn ko th v s dng cc i tng

  • 14

    c sn ca Xcode nh Button, Label, Slider hay cc on code mu ( If,

    Switch).

    - Navigator area: cung cp cho bn mt cch nhn trc quan, tin li cho vic

    qun l ng dng, xem thng bo li, tm kim mt on code trong chng

    trnh hay kim tra mc hot ng ca RAM, CPU khi chy ng dng

    Hnh 2.2 Giao din Xcode

    Xcode cng cung cp cho bn mt ch g li thng minh h tr bn trong vic

    pht hin li, cnh bo li v gi thay th khc phc

  • 15

    Hnh 2.3 Ch g li

    Hn th na, km theo Xcode l mt b ti liu hng dn tng bc, chi tit v

    tin li nhm h tr ngi dng trong vic lp trnh. Trong qu trnh vit ng dng, nu

    bn mun tm hiu thm mt i tng, bn c th s dng ti b ti liu ny c c

    hng dn, v d minh ha d hiu.

    Hnh 2.4 Ti liu hng dn

  • 16

    Bn c th xem thm ti liu v Xcode do Apple cung cp ti:

    https://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcod

    e_Overview/About_Xcode/about.html

    2.1.2 Thao Tc To ng Dng Mi

    Khi khi ng Xcode ln, giao din hin ra cho php bn to mt project mi,

    hoc m li cc project gn y.

    Hnh 2.5 Giao din Xcode khi m ln

    Ti giao din Xcode, bn c th to mi mt project bng cch chn Create new

    project. Ngoi ra bn c th to project mi bng cch chn File > New > Project.

  • 17

    Hnh 2.6 To mi Project bng Menu

    Sau khi chn New Project, Xcode s yu cu bn la chn mt hnh thc cho Project

    ny (ng dng cho iPhone hay Mac OS, Single View hay Empty View). Cch n gin

    nht l bn chn Single View.

    Hnh 2.7 Chn la mu cho project

  • 18

    Tip theo bn in thm mt vi thuc tnh ca Project nh Product Name,

    Organization Name, Company Identifer. Sau bn tin hnh la chn Devices cho

    Project (iPhone, iPad hay Universal vit ng dng cho c hai).

    Hnh 2.8 in thng tin cho project

    Tip theo bn chn ni lu tr Project trn my tnh lu Project v chn Create.

  • 19

    Hnh 2.9 Chn ni lu Project

    Nh vy bn to xong mt Project mi.

    Hnh 2.10 Giao din project mi to

  • 20

    2.1.3 Tm Hiu Giao Din Xcode V Mt S Tnh Nng

    2.1.3.1 Navigator Area

    Navigator area cho php bn qun l ng dng hiu qu nh qun l cc tp tin,

    th mc, qun l cc thng bo li v cnh bo, qun l vic debugC th chia

    Navigator area thnh hai phn chnh l Navigator selector bar v Content area.

    Hnh 2.11 Giao din Navigator

    Trong Navigator selector bar gm mt s button chnh sau:

    - Project Navigator ( ): dng qun l cc tp tin ca ng dng nh thm,

    xa, gom nhmCc tp tin qun l s c th hin trong Content area.

  • 21

    - Find Navigator ( ): s dng tm kim mt cch nhanh chng cc string

    trong ng dng, tm kim ni dung m rng.

    - Issue Navigator ( ): qun l cc thng bo li, cnh bo ca ng dng.

    - Debug Navigator( ): theo di qu trnh debug ng dng.

    2.1.3.2 Editor Area

    Editor area cho php bn thit k giao din, vit v sa code cho ng dng. Khi

    bn chn tp tin storyboard bn Content area th Editor area s hin th giao din

    Interface Builder cho bn thit k giao din. Tng t vi tp tin .m v .h th Editor area

    s hin th ni dung code ca tp tin.

    Hnh 2.12 Giao din ng dng

  • 22

    Hnh 2.13 Giao din code

    Editor area cn cho php bn qun l cc i tng trong giao din mt cch chi

    tit hn. Trong phn Interface Builder, bn chn button Show Document Outline (

    ) bn gc tri mn hnh, bn s thy c mt vng qun l phn cp cc i

    tng.

  • 23

    Hnh 2.14 Giao din qun l chi tit

    2.1.3.3 Toolbar Area

    Toolbar cho php thc hin mt s thao tc mt cch nhanh chng thng qua cc

    Button m khng cn phi dng ti Menu. Toolbar gm mt s thnh phn sau:

    - Run button ( ): dng chy th ng dng.

    - Stop button ( ): dng dng vic chy th ng dng.

    - Scheme menu ( ): dng la chn iOS Simulator

    thch hp chy ng dng.

    - Activity viewer: thng bo trng thi ca ng dng, cng nh hin cc trng

    thi li, cnh bo ca chng trnh (nu c).

    Hnh 2.15 Activity viewer

  • 24

    - Editor selector ( ): gm cc button dng iu chnh Editor area

    (cho php chia i Editor area ra lm hai hay ch l mt vng duy nht).

    - View selector ( ): dng n/hin cc vng Navigator area, Utility

    area, Debug area.

    Hnh 2.16 Toolbar area

    2.1.3.4 Utility Area

    Utility area c s dng thay i cc thuc tnh ca i tng bn Interface

    Builder, ngoi ra cn c s dng la chn v ko th cc i tng, on code mu

    vo Interface Buider v Editor.

    Utility area c chia lm 2 vng chnh l Inspector v Library. Inspector pane l

    vng cho php bn c s thay i thuc tnh ca i tng. Trn u ca Inspector pane

    l Inspector selector bar bao gm cc button h tr bn trong vic iu chnh thuc tnh.

    Trn u ca Libarary pane l Libaray selector bar bao gm cc button bn c th

    chn la ph hp trong vic s dng cc on code mu, cc i tng.

  • 25

    Hnh 2.17 Utility area

    Trong Inspector selector bar, c hai button bn cn lu l Attribute ( ) v

    Quick Help ( ). Quick Help cho php bn tra cu mt cch nhanh chng cc i tng,

    hm trong ti liu km theo ca Xcode. Attribute cho php bn thay i cc thuc tnh

    ca i tng.

    Trong Library selector bar, c mt s button quan trng l Code snippets ( ),

    Objects ( ). Code snippets hin th cho bn danh sch cc on code mu bn la

    chn s dng trong qu trnh vit ng dng. Objects hin th cc i tng ca Xcode cho

    bn s dng thit k giao din ng dng.

  • 26

    2.1.4 Thit K Giao Din

    Giao din ng dng trong Xcode c thit k thng qua Interface Builder, cc i

    tng ca Interface Builder c cung cp trong Utility area. tin hnh thit k giao

    din, bn ko th i tng trong Utility area vo Interface Builder.

    Hnh 2.18 Ko th cc i tng vo giao din

    Ti y bn c th iu chnh, sp xp v tr ca cc i tng theo tng thit k

    ca bn. Trong Xcode, tp tin bn dng thit k giao din l tp tin .storyboard.

    Khi ko th cc i tng vo Interface Builder, bn s d dng xc nh v tr t

    i tng sao cho giao din cn i, khng b hin tng lch khi Run ng dng. l

    nh vo tnh nng h tr canh chnh ca Xcode thng qua cc ng k t nt mu

    xanh.

  • 27

    Hnh 2.19 Canh chnh v tr theo ng k xanh

    Bn c th iu chnh cc thuc tnh ca cc i tng trong Interface Builder thng

    qua vng Inspector pane.

  • 28

    Hnh 2.20 Thay i thuc tnh ca i tng

    tm kim i tng mt cch nhanh chng, bn s dng cng c tm kim trong

    Library pane.

    Hnh 2.21 Tm kim trong Library

  • 29

    Hn na, nu bn mun tm hiu r hn v i tng , xem v d c th minh

    ha, bn c th s dng n b ti liu h tr ca Xcode.

    Hnh 2.22 Xem ti liu h tr ca i tng

    2.1.5 Vit Code

    Phn code ca ng dng thng c vit trong hai tp tin l .h v .m. Tp tin .h

    thng c s dng kt ni v khai bo cc i tng ca Interface Builder trc khi

    mun s dng cc i tng ny lp trnh. Ngoi ra tp tin .h cn dng khai bo cc

    hm s kin trc khi s dng trong tp tin .m. Tp tin .m dng trin khai cc hm s

    kin m bn khai bo bn tp tin .h.

  • 30

    Hnh 2.23 Hai tp tin s dng vit code cho ng dng

    kt ni i tng trong Interface Builder vo tp tin .h (nh x), bn nhn kt

    hp Ctrl + nhp chut vo i tng v ko th vo tp tin .h.

    Hnh 2.24 nh x i tng vo tp tin .h

  • 31

    Khi hp thoi hin ra, bn la chn loi kt ni cho i tng l Action hoc

    Outlet. Hiu mt cch n gin, i tng no m bn s dng hin th thng tin ra

    bn ngoi th thuc loi Outlet. i tng no m bn mun vit code khi tng tc

    vi i tng s cho ra kt qu m bn mun ( v d bn mun nhn vo Button s

    hin Hello World ) th bn s chn loi l Action. Mt i tng c th va l Action,

    va l Outlet ty vo ngi vit ng dng quy nh.

    Hnh 2.25 La chn kiu nh x

    Khi bn vit code, Xcode h tr bn trong vic pht hin li v thng bo cho bn

    bng hnh trn mu cha du chm than ti v tr pht hin li. Ngoi ra Xcode cng

    c ch cnh bo bng tam gic mu vng cho on code m Xcode cho rng cn ci

    thin bn kp thi kim tra li v chnh sa cho hiu qu ( nu cn ).

    Xcode cn h tr bn mt ch gi sa li trong qu trnh vit code. V d bn

    vit code nhng qun du ; , Xcode s gi cho bn c du ; hon tt on code

    hon chnh.

  • 32

    Hnh 2.26 Gi khc phc li

    Xcode ch h tr khc phc mt s li c bn v c php, cc li lin quan khc trong qu

    trnh vit code cc bn phi t gii quyt

    Trong Library pane, Xcode h tr sn cho bn mt s on code mu trong th vin,

    nu bn cn xi on code no, bn ch cn ko th on code t Library pane sang

    Editor area.

    Hnh 2.27 Mt s code mu s dng

  • 33

    Nu bn c mt on code, bn mun lu n li ln sau s dng th bn ch cn chn

    on code v ko th vo Library pane, t tn cho on code v lu li. Nh vy

    ln sau bn mun s dng li, ch vic ko th t Library sang l c.

    thun tin cho vic vit code nhanh chng, bn c th bt ch chia i vng

    Editor area lm hai, lc ny bn c th xem cng lc c tp tin .h ln tp tin .m. Mun

    thc hin iu , trong Toolbar, bn nhp chut vo nt Assistant Editor Button ( ).

    Hnh 2.28 Chia i mn hnh Editor tin lm vic

    Bn c th ty chnh li font v mu ch to nn mt s thay i, to thm cm

    hng mi. Bn chn Xcode > chn Preferences > chn Fonts & Colors, sau bn ty

    chn mt nh dng mnh thch.

  • 34

    Hnh 2.29 Ty chnh Font & Color cho giao din lp trnh code ca Xcode

    Trong qu trnh vit chng trnh, bn cng c th s dng nt Quick Help trong

    Utility area m ti liu tham kho v tra cu cc hm cng nh xem v d minh ha

    cho cc hm.

    2.1.6 Thc Thi V Kim Tra Li Ca ng Dng

    2.1.6.1 Thc Thi ng Dng

    Khi bn mun chy th v a ng dng ln iOS Simulator, bn s dng cc button

    chuyn dng trn Toolbar. chy ng dng, trc tin bn phi chn la thit b m bn

    mun chy ng dng ln . Bn c th chn chy ln thit b tht hoc trn iOS

    Simulator. Trong iOS Simulator, ty theo ng dng ca bn vit cho thit b no m la

    chn thit b , v d iPad, iPhone, iPhone Rentina

  • 35

    Hnh 2.30 La chn thit b iOS Simulator

    Sau khi chn la xong phn thit b, bn nhn Run chy chng trnh. Nu mun

    dng chng trnh, bn nhn Stop.

    Hnh 2.31 Nhn Stop dng chng trnh

  • 36

    2.1.6.2 Kim Tra Li Ca ng Dng

    Vng Debug area h tr bn debug ng dng kim tra tng bc, ngoi ra cn c

    vng Debug Navigator cho php bn theo di cc tin trnh, cng nh vic s dng RAM,

    CPU.

    Hnh 2.32 Vng Debug Navigator

    Trong Debug area c cc nt h tr nh bt tt cc Breakpoint, nhm nt h tr thc

    thi ng dng tng bc h tr bn debug mt cch chnh xc hn.

    Hnh 2.33 Vng Debug area

    nh du breakpoint, bn chn v tr cn nh du, v nhp chut vo

    Breakpoint gutter tng ng vi v tr .

  • 37

    Hnh 2.34 nh du Breakpoint

    Ngoi ra nu bn mun thu gn 1 on code no , bn c th s dng thanh ng

    h tr bn cnh thanh ng t Breakpoint.

    Hnh 2.35 Thu gn on code cho d nhn

  • 38

    2.2 TM HIU IOS SIMULATOR

    2.2.1 Gii Thiu iOS Simulator

    iOS Simulator l mt phn trong b cng c km theo ca phn mm Xcode. iOS

    Simulator cha iOS SDK cho php bn chy trn Mac OS gi lp mi trng iPhone,

    iPad nhm phc v cho vic kim th ng dng c vit ra trc khi kim th ng dng

    trn thit b tht.

    iOS Simualtor cho php bn ci t nhiu thit b iOS khc nhau nh iPhone,

    iPhone Rentina, iPad, iPad Rentina.. vi nhiu phin bn iOS khc nhau nh 6.0, 6.1,

    7.0. Do bn c th d dng xy dng ng dng ca mnh dnh cho phin bn iOS

    mi hoc dng cho c phin bn iOS c.

    Vi iOS Simulator, bn c th kim th ng dng ca bn v thit k giao din, v

    tnh nng ca ng dng, t c th khc phc cc li pht sinh, ti u ha ng dng

    trc khi bn em ng dng ln thit b tht.

    Bn c th c thm ti liu iOS Simulator User Guide trn iOS Developer Library tm

    hiu thm, cng nh c thm kinh nghim s dng iOS Simulator.

    Xem ti :

    https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/iOS_Simulator_

    Guide/Introduction/Introduction.html

    2.2.2 Tm Hiu iOS Simulator

    ng dng iOS Simulator c th chy chung vi phn mm Xcode hoc chy c lp

    u c. Bn c th tng tc vi iOS Simulator thng qua bn phm, chut nhp d

    liu cng nh iu khin cc s kin ca ngi dng.

    Phn ny s gip bn tm hiu mt s im c bn ca iOS Simulator h tr bn

    tt hn trong qu trnh vit ng dng cho iOS.

  • 39

    2.2.2.1 Thao Tc C Bn Vi IOS Simulator

    Thao tc m v thot ios simulator

    m iOS Simulator bn c hai cch. Mt l bn chy ng dng trong Xcode

    khi ng iOS Simulator. Vi cch ny bn ch cn chn iOS Simulator ph hp ri

    chn Run.

    Hnh 2.36 Chn Run m iOS Simulator

    Cch th hai l bn chn menu Xcode > chn Open Develop Tool > iOS

    Simulator. Khi y iOS Simulator s c khi ng.

  • 40

    Hnh 2.37 M iOS Simulator trong Menu

    Mc d l mt phn trong b cng c ca Xcode, nhng iOS Simulator vn c th

    tip tc hot ng d Xcode c b ng chng trnh. Do nu bn mun thot hn iOS

    Simulator, bn chn menu iOS Simulator > chn Quit iOS Simulator.

    Hnh 2.38 Trong menu chn Quit iOS Simulator

  • 41

    Xoay mn hnh iOS Simulator

    Trong qu trnh chy ng dng trn iOS Simulator kim th, i lc bn cn s

    dng ti chc nng xoay mn hnh c th kim tra tnh tng thch ca ng dng vi

    tng kiu mn hnh ( ngang, ng) hoc ph hp vi ng dng ca bn ( chng hn

    vit ng dng s dng mn hnh ngang). Nu l thit b tht, tht d dng bn c th

    xoay mn hnh cho ph hp. Tuy nhin vi iOS Simulator, bn cn phi s dng n chc

    nng xoay mn hnh c h tr sn c th xoay mn hnh theo mun.

    Bn c th vo menu Hardware > chn Rotate Left nu bn mun xoay qua tri ;

    chn Rotate Right nu bn mun xoay qua phi ; chn Shake Gesture nu bn mun

    rung nh.

    Hnh 2.39 Trong menu chn xoay mn hnh iOS Simulator

    n/hin keyboard

    Trong qu trnh kim th ng dng, nhiu trng hp bn cn s dng n bn

    phm ca iOS, hoc sau khi nhp liu xong trong TextField nhng ng dng ca bn cha

    c chc nng n bn phm i, lc bn cn s dng n tnh nng Keyboard ca iOS

    Simulator n/hin bn phm. Bn c th vo menu Hardware > chn Simulate

    Hardware Keyboard.

  • 42

    Hnh 2.40 n/Hin keyboard trong iOS Simulator

    Ci t v g b ng dng trn iOS Simulator

    ng dng trong iOS Simulator c ci t thng qua Xcode. Khi bn chy ng

    dng bng Xcode th Xcode s ci t ng dng vo iOS Simulator. Cch thc g b

    ng dng cng ging nh trn thit b iOS tht. Bn ch cn nhp v gi chut ( hoc

    trackpad ) trn biu tng ca ng dng cho n khi xut hin biu tng du x, bn ch

    cn nhp vo du x g b ng dng. Sau khi hon tt ch cn n Home tr li ban

    u.

  • 43

    Hnh 2.41 G ng dng trong iOS Simulator

    B sung thm cc phin bn ios v cc thit b ios

    iOS Simulator cho php bn c th chy ng dng trn nhiu loi thit b nh

    iPhone, iPhone Rentina, iPad, iPad Rentina. ng thi, iOS Simulator cng cho php bn

    s dng nhiu phin bn khc nhau ca iOS nh iOS 6.0, iOS 6.1, iOS 7.0.

    Mc nh sau khi ci Xcode 5, iOS Simulator km theo c ci t h tr cc

    thit b iPhone Rentina, iPad Rentina v iOS 7.0. Nu bn mun iOS Simulator chy cc

    thit b iPhone, iPad thng thng v cc phin bn iOS thp hn nh iOS 6.0, iOS 6.1

    th bn cn phi ti v ci t thm. Bn vo Xcode > chn Preferences > chn mc

    Download. Ti y bn la chn phin bn iOS cn ci t thm v ti v.

  • 44

    Hnh 2.42 Ti thm cc iOS Simulator phin bn c hoc ti liu

    Chp nh mn hnh iOS Simulator

    Nu bn mun chp nh mn hnh ca iOS Simulator, bn c th lu li nh chp

    mn hnh ca iOS Simulator ln mn hnh ca Mac OS. lm vic , bn chn File >

    chn Save Screen Shot, khi nh chp mn hnh s c lu trn mn hnh Mac OS.

    Hnh 2.43 Chp nh mn hnh iOS Simulator

  • 45

    Copy - Paste trong iOS Simulator

    Trong iOS Simulator cng h tr bn Copy v Paste mt chui.

    Copy mt chui, bn nhp chut vo chui hin th ra nt Select v Select

    All .Chn Select nu bn mun la chn mt t no , hoc Select All nu mun chn

    tt c.

    Hnh 2.44 Chn Select hoc Select All

    Di chuyn im u v im cui nh du li chui cn chn > chn Copy

  • 46

    Hnh 2.45 La chn chui cn copy v chn Copy

    Paste mt chui vo iOS Simulator, trc tin bn chn Edit > Paste chuyn

    chui c copy t Mac vo iOS Simulator.

    Hnh 2.46 Paste t Mac OS vo iOS Simulator

  • 47

    Sau chn v tr mun Paste chui trong iOS Simulator > Double-click vo v tr

    hin ra nt Paste > chn Paste.

    Hnh 2.47 Chn Paste

    2.2.2.2 Mt S Hn Ch Ca iOS Simulator

    Mc d iOS Simulator rt hu ch cho bn kim th ng dng trc khi a ln thit

    b tht, tuy nhin bn thn iOS Simulator vn cn mt s hn ch nht nh. i vi phn

    cng, iOS Simulator vn cn khim khuyt mt s im nh khng c camera, khng

    c microphone Ngoi ra cn mt s framework khng c h tr nh Media

    player, Messenger UI Nu nh cc phin bn trc ca Xcode, iOS Simulator cn

    h tr c vi cc phin bn ca iOS thp hn nh iOS th trong phin bn ny, iOS

    Simulator ch h tr t phin bn iOS 6.0 tr ln.

  • CHNG III

    NGN NG OBJECTIVE-C

    Mc d Xcode h tr nhiu ngn ng trong vic lp trnh ng dng trong iPhone, nhng

    ng vai tr ch yu nht vn l ngn ng Objective-C bi s thn thin, d s dng ca

    n. Chng ny s hng dn bn mt s nt c bn ca ngn ng lp trnh Objective-C

    vi hi vng bn s nm c s lc cch s dng, c php ca ngn ng ny thun

    tin hn trong vic xy dng ng dng. Ni dung chng s trnh by s lc mt s vn

    sau ca ngn ng Objective-C:

    Khai bo bin

    Kiu d liu

    Cc php ton

    Hm (Function)

    Cu trc iu kin

    Cu trc lp

    Mng

    Chui

  • 49

    3.1 GII THIU NGN NG OBJECTIVED-C

    Ngn ng Objective-C c to ra bi Brad Cox v Tom Love vo nm 1980 ti

    cng ty Stepstone. T nm 1988, cng ty NeXT Sofware nm gi bn quyn ca ngn

    ng Objective-C. H pht trin cc b th vin v c mi trng pht trin cho n c

    tn l NEXTSTEP.

    n cui thng 12 nm 1996, hng Apple mua li cng ty NeXT Software, mi

    trng NEXTSTEP/OPENSTEP tr thnh phn ct li ca h iu hnh OS X m

    Apple gii thiu sau ny. Phin bn chnh thc ca mi trng pht trin ny do Apple

    gii thiu ban u c tn l Cocoa.

    Bng vic h tr sn ngn ng Objective-C, ng thi tch hp mt s cng c pht

    trin khc nh Project Builder (y l tin thn ca Xcode) v Interface Builder, Apple

    to ra mt mi trng mnh m pht trin ng dng trn Mac OS X. n nm 2007,

    Apple tung ra bn nng cp cho ngn ng Objective-C v gi l Objective-C 2.0.

    Ngn ng lp trnh Objective-C da trn nn tng ngn ng C nhng b sung thm

    h tr lp trnh hng i tng. Objective-C l ngn ng lp trnh s dng vit ng

    dng cho Apples iOS v h iu hnh Mac OS.

    3.2 KHAI BO BIN - CCH S DNG

    3.2.1 Bin

    Bin c s dng lu tr cc gi tr ca ng dng. Bin gm c: kiu d liu,

    tn bin v gi tr ca bin. C php:

    Kiu_d_liu tn_bin ;

    hoc

    Kiu_d_liu tn_bin = gi_tr_ca_bin;

    Trong =: lnh gn gi tr cho bin

    VD: int x ; hoc int x = 10;

  • 50

    3.2.2 Quy Tc t Tn

    Quy tc t tn bin:

    - Ngn ng Objective-C c phn bit hoa thng.

    - Tn bin khng c du ting vit.

    - Tn bin khng c khong trng.

    - Tn bin khng c bt u bng s.

    - Tn bin khng c c cc k t c bit (ngoi tr du gch di _)

    - Tn bin khng c t trng vi cc t kho ca ngn ng objective-C. VD:

    void, if, static, ...

    3.3 KIU D LIU

    Kiu d liu s gip trnh bin dch xc nh c loi d liu (s nguyn, s thc,

    chui,) m chng ta mun lu tr l g t s cp pht lng b nh tng ng vi

    loi d liu m chng ta cn lu tr. Objective-C h tr cc kiu d liu c bn nh sau:

    Loi d liu Tn kiu S nh Min gi tr

    K t char 1 byte -128 .. 127

    unsigned char 1 byte 0 .. 255

    S nguyn int 4 bytes - 2147483648 .. 2147483647

    unsigned int 4 bytes 0 .. 4294967295

    short 2 bytes -32768 .. 32767

    unsigned short 2 bytes 0 .. 65535

    long 4 bytes -2147483648 .. 2147483647

    unsigned long 4 bytes 0 .. 4294967295

    long long 8 bytes -9,223,372,036,854,775,808 ..

  • 51

    9,223,372,036,854,775,807

    unsigned long long 8 bytes 0 .. 18,446,744,073,709,551,615

    S thc float 4 bytes 0 .. 3.4028235e+38

    double 8 bytes 0 .. 1.7976931E+308

    Long double 16 bytes 0 .. 1.1897315E+509

    Logic BOOL 1 bytes 0, 1; True, False; Yes, No

    Bng 3.1 Kiu d liu trong Objectived-C

    3.4 PHP TON

    Php ton K hiu V d

    Cng + A + B

    Tr - A B

    Nhn * A * B

    Chia / A / B

    Ly phn d % M % N

    Bng 3.2 Cc php ton trong Objectived-C

    Lu : php ly phn d ch c dng trn 2 ton hng kiu s nguyn (nu khng

    s sinh li c php)

    V d: 9 % 5 = 4

    3.5 CH THCH CODE

    Ch thch mt dng code

  • 52

    //ghi ch ch trn 1 dng

    Ch thch mt on code

    /*

    Ghi ch trn 1

    hay nhiu dng

    */

    3.6 XUT D LIU RA MN HNH

    Hm NSLog l hm c bit ca h thng, hm ny c thit k dng cho vic

    hin th cc thng bo li.

    C php:

    NSLog(Ni dung in [ , cc_biu_thc]);

    Ni dung in V d

    Cc k t cn in LacHong University

    Cc k t c bit bt u bi du \ \n : xung dng;

    \t : k t Tab;

    \\ : k t \

    \; : k t ;

    \ : du

    Cc m nh dng gi tr ca biu thc %m_kiu_d_liu

    (kiu float l f; kiu int l d hay i)

    Bng 3.3 V d cc kiu xut d liu ra mn hnh

    VD: Dng hm NSLog hin th chui LacHong University

  • 53

    Hnh 3.1 Code s dng hm NSLog()

    Kt qu hin th:

    Hnh 3.2 Kt qu in ra mn hnh

    Ghi ch: @: bn trong cp nhy i l chui cn lu log kim tra.

    Hnh 3.3 Dng NSLog() xut ra mn hnh mt s.

    Kt qu hin th:

    Hnh 3.4 Kt qu xut ra ch v s

  • 54

    3.7 FUNCTION

    3.7.1 nh Ngha

    Function L tp hp cc dng code, gom thnh 1 khi. Khi code ny c t tn.+

    Khi code ny ch c thc thi khi tn khi code c gi.

    3.7.2 Phng Thc Khng C Tham S Truyn Vo

    Khai bo:

    - (kiu_hm) tn_hm

    {

    //cc cu lnh

    [return [biu_thc];]

    }

    Trong :

    - Du - i din cho loi phng thc m ta phi gi n thng qua i tng

    ca lp cha ng phng thc .

    - Kiu hm: l kiu ca trong lnh return.

    - Tn hm: do chng ta t ngh ra

    VD:

    Hnh 3.5 Hm HelloWorld

    Gi hm:

  • 55

    Hnh 3.6 Xut ra mn hnh HelloWorld

    Trong self l lp hin ti c cha phng thc helloWorld.

    3.7.3 Phng Thc C 1 Tham S Truyn Vo

    Khai bo:

    - (kiu_hm) tn_hm : (kiu_d_liu)tn_tham_s

    {

    //cc cu lnh

    [return [biu_thc];]

    }

    VD:

    Hnh 3.7 Hm HelloWorld vi tham s truyn vo

    Gi hm:

    Hnh 3.8 Gi hm HelloWorld

    3.7.4 Phng Thc C Nhiu Tham S Truyn Vo

    Khai bo:

  • 56

    - (kiu_hm) tn_hm : (kiu_d_liu)tham_s_1 [m_t]: (kiu_d_liu)tham_s_2

    {

    //cc cu lnh

    [return [biu_thc];]

    }

    Trong

    - du hai chm : c dng ngn cch gia cc tham_s.

    - [m_t]: c th c hoc khng, dng m t cho tn tham s.

    VD:

    Hnh 3.9 Hm cng hai s

    Trong

    - a: l tham s th 1.

    - b: l tham s th 2.

    Gi hm:

    Hnh 3.10 In kt qu hm cng

    Trong 1 v 2 l cc i s c truyn vo hm congHaiSo.

  • 57

    3.8 CU TRC IU KIN

    3.8.1 Cu Lnh If

    C php

    if ( iu_kin )

    {

    //Cng vic 1

    }

    Lu : iu kin l mt cu hi m cu tr li l YES hoc NO, Cng vic 1 s

    c thc hin nu iu kin l YES.

    V d:

    - if (a > b) a c ln hn b khng?

    - if (a >= b) a c ln hn hoc bng b khng?

    - if (a < b) a c nh hn b khng?

    - if (a

  • 58

    //Cng vic 2

    }

    3.8.3 Cu Lnh Switch - Case

    C php

    switch ( biu_thc)

    {

    case hng_1: [cng_vic_1]

    case hng_2: [cng_vic_2]

    ...

    case hng_n: [cng_vic_n]

    default: [cng_vic_n+1]

    }

    Trong

    - Biu thc v hng kiu s nguyn

    - Lnh break thot khi switch

    VD:

  • 59

    Hnh 3.11 Cu trc Switch

    3.9 Cu Trc Lp

    3.9.1 Vng Lp For

    C php

    for (biu_thc1; biu_thc2; biu_thc3)

    {

    //Cng vic

    }

    VD:

    Hnh 3.12 Vng lp For

    3.9.2 Vng Lp While

    C php:

  • 60

    while (iu_kin_lp)

    {

    //Cng vic

    }

    Trong :

    - Khi cn ng th cn thc hin . Vng lp kt

    thc khi sai.

    VD:

    Hnh 3.13 Vng lp While

    3.9.3 Vng Lp Do-While

    C php:

    do {

    //Cng vic lp

    } while(iu_kin_lp)

    Trong :

    - Thc hin cng vic t nht 1 ln, v lp li cng vic khi l

    ng.

    VD:

  • 61

    Hnh 3.14 Vng lp Do - While

    3.10 MNG

    3.10.1 nh Ngha

    Mng l 1 tp hp nhiu bin nh c cng kiu, gi l kiu phn t ca mng, c

    cp pht nhng v tr lin tc trong b nh.

    Mi phn t (bin nh) trong mng c xc nh da trn tn mng v cc ch s

    xc nh v tr ca phn t trong mng.

    Ch s phn t ca mng l cc s nguyn khng m.

    3.10.2 Mng Nsarray

    S dng i tng NSArray khi to mng.

    C php:

    NSArray *tn_mng;

    VD:

    NSArray *mangTen;

    khi to gi tr cho cc phn t trong mng ta s dng hm

    VD:

  • 62

    Hnh 3.15 S dng NSArray

    Trong

    - hm : m s phn t trong mng.

    - alloc: cp pht vng nh cho mng mangTen.

    - %@: M kiu d liu i vi kiu chui NSString trong Objective-C.

    - objectAtIndex: ly ra phn t v tr index.

    Kt qu

    Hnh 3.16 Kt qu s dng NSArray

    3.11 CHUI I TNG NSSTRING

    3.11.1 Khi To Chui

    i vi chui trong Objective-C phi bt u bng @

    Hnh 3.17 Khi to chui

    kim tra gi tr ca chui ta dung hm NSLog

  • 63

    Hnh 3.18 Kim tra gi tr chui

    m s lng k t (chiu di ca chui)

    Hnh 3.19 m s lng k t

    3.11.2 i Tng NSString

    To i tng c kiu l NSString c th s dng cc thao tc lien quan n

    chui do Class NSString cung cp (ghp chui, ct chui)

    Hnh 3.20 i tng NSString

    3.11.3 Tm Kim Bn Trong Chui

    Dng hm rangeOfString tm chui str1 c xut hin trong chui str2 khng.

    Hnh 3.21 Tm kim bn trong chui

  • 64

    Kt qu

    Hnh 3.22 Kt qu tm kim

    3.11.4 Tm Chui V Thay N Thnh Chui Khc

    Dng hm replaceCharactersInRange thay i chui thnh chui khc.

    Hnh 3.23 Thay i k t trong chui

    Kt qu:

    Hnh 3.24 Kt qu thay i k t

    3.11.5 Xo Ni Dung Bn Trong Chui

    Dng hm deleteCharactersInRange xa mt ni dung bn trong chui.

    Hnh 3.25 Xa ni dung trong mt chui

    Kt qu

  • 65

    Hnh 3.26 Kt qu sau khi xa ni dung

    3.11.6 Ct Chui

    Ct chui c gii hn s lng k t, ly t k t th n.

    Hnh 3.27 Ct chui t v tr n

    Kt qu

    Hnh 3.28 Kt qu ct chui t v tr n

    Ly tt c k t cn li, tnh t k t th n.

    Hnh 3.29 Ly cc k t cn li t v tr n

    Kt qu

    Hnh 3.30 Kt qu ly cc k t cn li t v tr n

  • 66

    Tch chui thnh cc phn nh

    Hnh 3.31 Tch chui thnh cc phn nh

    Kt qu

    Hnh 3.32 Kt qu tch chui

    3.11.7 Chn K T Vo Trong Chui

    Dng hm insertString chn k t hoc mt chui vo chui.

    Hnh 3.33 Chn k t vo chui

    Kt qu

    Hnh 3.34 Kt qu chn k t vo chui

    3.11.8 Chn K T Vo Cui Chui

    Dng hm appendString chn k t vo cui chui.

  • 67

    Hnh 3.35 Chn k t vo cui chui

    Kt qu

    Hnh 3.36 Kt qu chn k t vo cui chui

    3.11.8 So Snh Chui

    Dng hm isEqualToString so snh hai chui.

    Hnh 3.37 So snh hai chui

    Kt qu

    Hnh 3.38 Kt qu so snh hai chui

    3.11.9 So Snh Chui Vi K T u V Cui Chui

    Dng hm hasPrefix v hasSuffix so snh vi k t u chui, k t cui chui.

  • 68

    Hnh 3.39 So snh vi k t u, k t cui

    Kt qu

    Hnh 3.40 Kt qu so snh vi k t u chui, k t cui chui

    3.11.10 Chuyn i Hnh Dng Ca Ch

    Vit hoa ch u.

    Hnh 3.41 Vit hoa k t u

    Kt qu

  • 69

    Hnh 3.42 Kt qu vit hoa k t u

    Tt c vit thng.

    Hnh 3.43 Vit thng tt c k t

    Kt qu

    Hnh 3.44 Kt qu vit thng cc k t

    Tt c vit hoa.

    Hnh 3.45 Vit hoa tt c k t

    Kt qu

    Hnh 3.46 Kt qu vit hoa cc k t

  • 70

    3.11.11 Chuyn Chui Thnh Dng S

    Chuyn thnh s nguyn

    Hnh 3.47 Chuyn thnh s nguyn

    Kt qu

    Hnh 3.48 Kt qu chuyn thnh s nguyn

    Chuyn thnh NSInteger

    Hnh 3.49 Chuyn thnh NSInteger

    Kt qu

    Hnh 3.50 Kt qu chuyn thnh NSInteger

    Chuyn thnh float

  • 71

    Hnh 3.51 Chuyn thnh float

    Kt qu

    Hnh 3.52 Kt qu chuyn thnh float

    Chuyn thnh s double

    Hnh 3.53 Chuyn thnh double

    Kt qu

    Hnh 3.54 Kt qu chuyn thnh double

  • CHNG IV

    MT S THAO TC C BN

    Trc khi bt u lp trnh ng dng trn iPhone, ngoi vic bn tm hiu v

    Xcode v iOS Simulator, bn cn phi tm hiu thm mt s thao tc c bn trong lp

    trnh iOS. Hiu bit v cc thao tc c bn ny s b tr cho bn trong qu trnh tm hiu,

    cng nh l bi hc v lng trc khi i su vo tm hiu cc i tng c bn trong

    Xcode chng sau. Ni dung chng ny gm mt s thao tc c bn nh:

    Thay i icon ca ng dng

    Thay i mn hnh khi ng dng va c m ln

    Thay i tn ng dng khi tn c qu di

    Ty chnh background

    Thm mi mt framework

    n thanh trng thi status bar

  • 73

    4.1 APP ICON LOADING SCREEN

    Phn ny s hng dn bn cch hin th cng nh to icon, background image,

    loading screen cho ng dng ca bn. App icon, background image, loading screen cho

    ng dng ca bn cn da theo kch thc quy nh ca Apple v nn nh dng PNG.

    Bn c th tham kho thm kch thc chun y

    https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconM

    atrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1.

    4.1.1 App Icon

    App icon l biu tng ca ng dng s hin th ra mn hnh iPhone sau khi ng

    dng c ci t, ng thi icon ca ng dng cng hin th ln App Store khi bn em

    ng dng ca mnh ln App Store. C hai loi icon l icon dnh cho ng dng trn iPhone

    v icon dnh cho ng dng trn App Store. App icon cho iPhone Rentina l 120x120,

    App icon cho App Store l 1024x1024.

    Hnh 4.1 Icon

    Sau khi chun b c hnh nh vi kch thc ph hp, trong phn thng tin ca

    Project, bn ko xung phn App icon v ko cc icon chun b sn vo ng v tr ca

    icon.

  • 74

    Hnh 4.2 Ko th icon vo v tr

    Bn tin hnh chy th ng dng trn iOS Simulator s thy icon ca ng dng.

    Hnh 4.3 Icon trn iOS simulator

  • 75

    4.1.2 Loading Screen

    Loading Screen l hnh nh m khi chy ng dng ln bn s thy n, ty theo tc

    ca ng dng m thi gian hin th Loading Screen nhanh hoc chm khc nhau.

    chun b cho Loading Screen bn cn chun b trc hnh nh dng PNG, kch thc

    640x1136 (iPhone 5 tr ln), 640x960 (iPhone 4).

    Hnh 4.4 Chun b Background

    Sau khi chun b xong hnh nh, trong phn Lauch Image, bn ko th hnh nh vo

    Xcode cho ng v tr.

    Hnh 4.5 Ko th background image vo Lauch Image

  • 76

    4.2 THAY I APP NAME

    App Name l tn ca ng dng hin th bn di App icon trn mn hnh iPhone.

    Nhiu trng hp v tn ng dng qu di nn khng th hin th ht trn mn hnh

    iPhone, do bn cn phi i tn ng dng li cho ph hp, ngn gn c th hin

    c tn ng dng bn di icon, nh vy ng dng s c tnh thm m hn. khc

    phc trng hp ny, bn cn phi thay i li App Name. Bn truy cp tp tin .plist v

    sa i Bundle Display Name thnh tn mi ca ng dng.

    Hnh 4.6 Truy cp tp tin .plist

  • 77

    Hnh 4.7 Sa i Bundle display name

    Sau khi hon tt, bn chy ng dng trn iOS Simulator xem kt qu.

    Hnh 4.8 Thay i tn trn iOS Simulator

  • 78

    4.3 N STATUS BAR

    Vic n status bar cho php bn chy ng dng ca mnh ton mn hnh m khng

    phi thu nh mt phn giao din dnh ch cho status bar. Trc tin bn chn tp tin

    .plist trong project, sau bn thm mt dng mi.

    Hnh 4.9 Thm dng mi

    Trong danh sch la chn ca dng mi thm vo, bn la chn Status bar is

    initially hidden v tr v gi tr l yes.

    Hnh 4.10 Chn gi tr Yes

  • 79

    Chy ng dng trn iOS Simulator xem kt qu.

    Hnh 4.11 Thanh trng thi Status bar mt

    4.4 BACKGROUND

    4.4.1 Background Image

    Hng dn ny s hng dn bn to v s dng mt hnh nh lm hnh nn cho

    ng dng ca bn. Trc tin bn cn phi chun b mt tm nh lm hnh nn. Kch

    thc ca tm nh ny ging nh hnh nh trong Loading Screen: nh dng PNG, kch

    thc 640x1136 (iPhone 5 tr ln), 640x960 (iPhone 4).

  • 80

    Hnh 4.12 Background Image

    Sau khi chun b xong hnh nh lm background cho ng dng, bn chp hnh

    nh vo trong project.

    Hnh 4.13 Chp hnh nh vo Project

  • 81

    Tip theo bn t Utility area, bn ko th i tng UIImage View vo Interface

    Builder, iu chnh kch thc UIImage View cho va vi mn hnh.

    Hnh 4.14 Ko th UIImage View vo Project

    Trong Inspector selector pane > Attributes inspector, bn tm n mc Image

    View > chn Image > la chn hnh nh bn mun lm background.

  • 82

    Hnh 4.15 La chn hnh nh lm background

    Kt qu.

    Hnh 4.16 Thay i background bng image

  • 83

    4.4.2 Background Color

    Ngoi vic s dng hnh nh lm background cho ng dng, nu bn yu thch s

    n gin, bn c th to background bng cch dng mt mu m bn a thch. Trong

    Inspector selector pane, bn chn Attributes inspector, tm n phn Background.

    Hnh 4.17 Attributes inspector

    Ti y bn cho hin ra bng mu chn la vi nhiu mu khc nhau, hy la

    chn cho mnh mt mu ph hp, nu mun nhiu mu hn c th chn Other.

    Hnh 4.18 Chn mu

  • 84

    Sau khi chn xong mu th background s i mu vi mu bn la chn.

    Hnh 4.19 Background thay i

    4.5 THM FRAMEWORK

    Mc d Xcode h tr nhiu Framework h tr cho cc nh pht trin ng dng, tuy

    nhin ch mt s framework c bn c thm vo khi to project, cc framework cn li

    th khi vit ng dng, bn phi t thm vo c th s dng framework . tin hnh

    thm mt framework, trong giao din General ca Project, bn ko xung ti mc Link

    Frameworks and Libraries.

    Hnh 4.20 Link Frameworks and Libraries

  • 85

    Bn nhp chut vo biu tng du cng m ra bng danh mc cc framework

    m Xcode h tr.

    Hnh 4.21 Chn Framework

    Sau bn la chn framework m bn mun thm vo project ri nhn Add.

    Hnh 4.22 chn Add

  • CHNG V

    MT S I TNG C BN

    Chng ny trnh by mt s i tng c bn thng c s dng vit ng

    dng cho iOS. Qua chng ny, bn c th nm c chc nng cng nh cch s dng

    mt s i tng c bn, t c th vn dng vo vit ng dng. Do kh nng ca

    ngi vit cn gii hn nn s i tng c gii thiu trong chng ny vn cn hn

    ch. Bn c th tm hiu thm nhiu i tng khc, tm hiu su hn tng i tng

    bng cch truy cp vo hng dn ca Apple cho ngi lp trnh a ch sau:

    https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/UIKit

    UICatalog/index.html

  • 87

    5.1 I TNG LABEL BUTTON TEXT FIELD

    5.1.1 Gii Thiu

    5.1.1.1 i Tng Label

    Label dng hin th mt ni dung l ch/cu/on vn c tnh c nh t thay i.

    Hnh 5.1 Label

    Label cho php ngi dng thay i mt s thuc tnh hin th ni dung ra giao

    din cho ph hp nh ty chnh mu ch, font v kch thc, canh tri/gia/phi hay cho

    ni dung ca label xung dng.

    Hnh 5.2 Thuc tnh ca Label

  • 88

    5.1.1.2 i Tng Button

    Button c th c thit k hin th ch hoc hin th theo hnh nh, thng c s

    dng ngi dng tng tc vi ng dng nhm to ra mt s kin no ca ng

    dng. Chng hn bn nhp tn ca bn vo text field, bn mun khi ngi dng chm vo

    button s hin tn bn ra mn hnh.Lc ny button s c thit k nm bt s kin khi

    ngi dng chm vo, v thc hin chc nng hin th tn bn ra mn hnh.

    Hnh 5.3 Button

    Vi button, bn c th la chn mt s nh dng button c sn, hoc ty chn mt

    dng button khc theo bn. Khng nhng th bn cn c th ty chnh font ch, mu

    ch, mu nn ca button hoc thay th button theo m hnh nh button c thit k

    trc.

  • 89

    Hnh 5.4 Thuc tnh ca Button

    5.1.1.3 i Tng Text Field

    i tng Text field thng c s dng ngi dng nhp d liu u vo cho

    ng dng. Chng hn nh bn vit chng trnh tnh tng hai s, th bn s dng Text

    field ngi dng nhp vo hai s cn tnh tng, v bn s s dng gi tr nhp vo ca

    Text field tnh ton v hin th kt qu cho ngi dng.

    Hnh 5.5 Text Field

    Text field cho php ty chnh canh l tri/gia/phi, ty chnh font ch v kch

    thc ch trong Text field. Hn na, bn c th ty chnh hnh dng ca Text field, cng

    nh nh dng ni dung gi cho ngi dng (placeholder).

  • 90

    Hnh 5.6 Thuc tnh ca Text Field

    5.1.2 V D

    Trong phn v d ny s hng dn cc bn vit mt ng dng nh hin th tn

    ca bn ra mn hnh. ng dng s c mt label, mt button, mt text field. Bn s nhp

    tn bn vo text field, sau chm vo button, label s hin th ni dung m bn nhp

    vo text field trc .

    - To ng dng c tn l Label-Button-TextField.

    - Thit k giao din cho ng dng gm mt lable, mt button, mt text field.

    - nh x cc i tng vo tp tin .h.

    - Vit code cho s kin khi ngi dng chm vo button.

    Bc 1: To project mi.

  • 91

    Hnh 5.7 To New Project

    Hnh 5.8 Chn ni lu project

  • 92

    Bc 2: thit k giao din

    Hnh 5.9 thit k giao din

    Bc 3: nh x i tng.

    Hnh 5.10 nh x i tng

  • 93

    Hnh 5.11 nh x i tng (tt)

    Bc 4: vit code cho button.

    Hnh 5.12 vit code cho button

    Bc 5: chy th

  • 94

    Hnh 5.13 chy th ng dng

    5.2 KT NI C S D LIU VI SQLITE

    5.2.1 Gii Thiu

    SQLite l mt h qun tr c s d liu c th chy hon ton c lp m khng cn

    n server. SQLite thng c ngi lp trnh s dng lu tr c s d liu khi vit

    ng dng cho cc thit b ca Apple. Cc lnh truy vn trn SQLite s dng cc lnh truy

    vn ca SQL (v d SELECT, UPDATE, CREATE). Vic qun l SQLite rt n gin,

    bn ch cn qun l thng qua mt plugin ca FireFox l SQLite Manager.Bn c th tm

    hiu thm ti http://www.sqlite.org.

    5.2.2 Ci t Sqlite Manager Cho Firefox

    ci t plugin qun l SQLite cho Firefox, bn vo phn Addon ca trnh duyt

    Firefox v tm plugin SQLite Manager ri Add to Firefox.

  • 95

    Hnh 5.14 Addon SQLite

    Sau khi ci t xong, trong phn Tool bn s thy nh hnh.

    Hnh 5.15 SQLite Manager trong Tool

    5.2.3 Cu Hnh ng Dng Tng Tc Vi Sqlite

    ng dng c th thao tc vi c s d liu ca SQLite, bn cn b sung thm th

    vin h tr vo project. Trong phn Build Phase, mc Link to Library, bn thm vo th

    vin libsqlite3.dylib vo project.

    Hnh 5.16 Thm framework h tr SQLite

  • 96

    5.2.4 Cc Hm Trong Sqlite

    Trong SQLite c mt s hm c bn cho php bn tng tc d dng vi c s d

    liu.

    - sqlite3_open(): m mt kt ni n tp tin sqlite. Nu tp tin ny cha c, h

    thng s t ng to ra.

    - sqlite3_close(): ng kt ni n sqlite.

    - sqlite3_prepare_v2(): khi to cu lnh truy vn SQL thc thi.

    - sqlite3_step(): thc thi lnh truy vn c to bi hm sqlite3_prepare_v2().

    - sqlite3_column_(): tr v kt qu d liu t cu truy vn SQL, vi kiu

    d liu c khai bo trong (thng l text, bytes, int, int16).

    - sqlite3_finallize(): xo cu lnh truy vn SQL c khi to bi hm

    sqlite3_prepare_v2() trong b nh.

    Bn c th tham kho thm mt s hm khc ti: www.sqlite.org/c3ref/funclist.html

    5.2.4.1 Khi To i Tng Sqlite

    Trc khi tng tc vi c s d liu SQLite, bn cn phi to i tng dng ny

    bng cch khai bo mt bin c kiu sqlite3 trong tp tin .h.

    Hnh 5.17 Khai bo sqlite3

    5.2.4.2 Kt Ni Hoc To Database

    Dng hm sqlite3_open() m kt ni n c s d liu sqlite.

    Hnh 5.18 Hm sqlite3_open

    Nu tp tin ny cha c th s t ng c to.

  • 97

    Filename: l ng dn n tp tin sqlite. Nu tn database c du ting vit th cn

    chun ho li theo dng UTF-8 trc khi truyn vo.

    S dng bin SQLITE_OK kim tra trng thi tr v ca vic m kt ni n

    database c thnh cng hay khng.

    5.2.4.3 Khi To V Thc Thi Lnh Truy Vn

    Cu lnh truy vn c khi to v lu tr vo i tng sqlite_stmt() v truyn vo

    hm sqlite_prepare_v2() thc thi.

    Hnh 5.19 khai bo i tng sqlite_stmt

    Hnh 5.20 Thc thi i tng sqlite_stmt trong sqlite3_prepare_v2

    Cu lnh SQL c thc hin bi cc lnh sau:

    Hnh 5.21Thc hin cu lnh SQL ly kt qu tr v

  • 98

    Trong cu lnh sqlite3_step() s tr v cc dng nh sau:

    - Nu cu lnh sql dng INSERT, DELETE, UPDATE, CREATE th tr v

    kt qu c dng l SQLITE_OK bo tnh trng c thc thi c hay khng.

    - Nu cu lnh slq dng SELECT s tr v kt qu c dng l SQLITE_ROW, l

    tp hp cc hng d liu c ly t database.

    5.2.4.4 Truy Xut D Liu Database

    Khi to cu lnh truy vn.

    Hnh 5.22 Khi to cu lnh truy vn

    Bc tch d liu ly c.

    Hnh 5.23 Tch d liu ly c

    5.2.4.5 ng Kt Ni Database

    Sau khi hon tt qu trnh tng tc c s d liu, bn nn ng li kt ni c s d

    liu c

    Hnh 5.24 ng kt ni c s d liu

  • 99

    5.2.5 V D

    Bc 1: khi ng firefox, vo SQLite Manager

    Hnh 5.25 Truy cp SQLite Manager

    Bc 2: to mt c s d liu mi tn l Count.

    Hnh 5.26 To CSDL mi

    Bc 3: To mt table mi

  • 100

    Hnh 5.27 To table

    Hnh 5.28 Khai bo thuc tnh cho Table

    Bc 4: nhp d liu

  • 101

    Hnh 5.29 Nhp d liu

    Hnh 5.30 Kt qu

    Bc 5: to project mi sqlite

  • 102

    Hnh 5.31 To Project mi

    Hnh 5.32 in thng tin Project

    Bc 6: thit k giao din

  • 103

    Hnh 5.33 Thit k giao din

    Bc 7: thm th vin vo project.

    Hnh 5.34 Thm th vin

  • 104

    Hnh 5.35 Sau khi thm th vin

    Bc 8: nh x i tng

    Hnh 5.36 nh x i tng

    Bc 9: Thm tp tin sqlite vo project

  • 105

    Hnh 5.37 Thm file mi

    Hnh 5.38 Add

    Bc 10: thm th vin sqlite3.h vo project, khai bo i tng sqlite3 v nsstring

  • 106

    Hnh 5.39 Kt qu nh x

    Bc 11: vit code trong hm View Didload ly ng dn ti tp tin sqlite.

    Hnh 5.40 Vit code View Didload

    Bc 12: vit code cho s kin Click

    Khai bo i tng lu ng dn database.

  • 107

    Hnh 5.41 Khai bo i tng lu ng dn

    Hnh 5.42 Lu ng dn vo i tng

    Khai bo i tng statment

    Hnh 5.43 Khai bo i tng sqlite3_stmt

    Vit lnh truy xut d liu

    Hnh 5.44 Lnh truy xut d liu

    Khai bo i tng lu tr cu truy vn

    Hnh 5.45 Khai bo i tng lu cu truy vn

  • 108

    Vit code truy vn

    Hnh 5.46 Vit code truy vn d liu

    Kt qu.

  • 109

    Hnh 5.47 Kt qu

    5.3 S DNG CAMERA IPHONE

    5.3.1 Gii Thiu

    Phn ny s hng dn cc bn cch s dng th vin h tr ca iOS dng

    camera iPhone chp nh. Th vin iOS cung cp mt lp l UIImagePickController dng

    qun l vic tng tc vi camera hoc photo library. Tuy nhin

    UIImagePickController khng th s dng trc tip m cn ti mt i tng khc

    delegate (tha k) li n. Sau y chng ta s xy dng mt ng dng n gin dng

    camera chp nh. Giao din ca ng dng ny gm mt UIImageView hin th hnh

    nh, mt button tn l Chp nh.

    5.3.2 V D

    To ng dng mi t tn l CameraApp.

  • 110

    Hnh 5.48 To project mi

    Hnh 5.49 Chn ni lu project

    Thit k giao din ng dng.

  • 111

    Hnh 5.50 Thit k giao din

    nh x cc i tng vo tp tin ViewController.h.

    \

    Hnh 5.51 nh x i tng

  • 112

    Hnh 5.52 Kt qu

    Trong ViewController, thm on code sau tha k li UIImagePickController.

    Hnh 5.53 Tha k UIImagePickController

    Vit code cho button Chp nh.

    Hnh 5.54 Vit code cho button Chp nh

    Vit code hai phng thc ca UIImagePickController.

  • 113

    Hnh 5.55 Vit code cho hai phng thc ca UIImagePickController

    Vit code cho ViewDidload.

    Hnh 5.56 Vit code cho hm ViewDidload

    Chy ng dng ln thit b tht kim tra kt qu.

    5.4 UIIMAGE

    5.4.1 Gii Thiu

    UIImage dng hin th hnh nh, c th s dng cc hiu ng animation hin

    th hnh nh.

    .

    Hnh 5.57 i tng UIImage

  • 114

    Hnh 5.58 UIImage khi ko ra thit k giao din

    5.4.2 Cc nh Dng nh H Tr Trn Iphone

    Cc dng file nh c h tr tt trn iPhone:

    5.4.3 V D

    Hin th nh t mt file c sn trn my.

    Bc 1: Add UIImageView vo StoryBoard.

    Chn Main.storyboard

    Hnh 5.59 Chn storyboard

    Tn nh dng Tn file m rng Tagged Image File Format (TIFF) .tiff, .tif

    Join Photographic Experts Group (JPEG) .jpg, .jpeg

    Graphic Interchange Format (GIF) .gif

    Portable Network Graphic (PNG) .png

    Windows Bitmap Format (DIB) .bmp, .bmpf

    Windows Icon Format .ico

    Windows Cursor .cur

    Xwindow bitmap .xbm

  • 115

    Ko th UIImage t hp thoi Accessibility vo Storyboard.

    Hnh 5.60 i tng UIImage View

    Hnh 5.61 Kt qu sau khi ko vo storyboard

    Bc 2: nh x UIImageView vo file NATViewController.h dng outlet vi

    tn imgHinhAnh.

  • 116

    Hnh 5.62 Kt qu sau khi nh x

    Bc 3: Add file hnh vo project ang lm.

    Click phi chut vo project chn Add Files to...

    Hnh 5.63 Thm file vo project

  • 117

    Hnh 5.64 Chn file cn thm vo

    Bc 4: Load file hnh vo UIImage.

    Cch 1: Chn hnh t hp thoi Image View.

    Hnh 5.65 Cch chn t Image View

    Hnh 5.66 Kt qu sau khi chn

    Cch 2: Gi phng thc sau load file hnh vo UIImageView.

    Hnh 5.67 Cch s dng code

    M file NATViewController.m, ti phng thc viewDidLoad.

  • 118

    Hnh 5.68 Chn NATViewController

    Hnh 5.69 Vit code hin th hnh nh

    Kt qu.

    Hnh 5.70 Kt qu

    Lu : phng thc viewDidLoad s c gi mi khi chng ta m ng dng.

  • 119

    Cch 3: Ko th trc tip i tng Image vo StoryBoard:

    Hnh 5.71 Ko th Image vo Storyboard

    Hnh 5.72 Kt qu

    Hin th nh t mt URL:

    S dng phng thc initWithData load ni dung t url.

    Hnh 5.73 Code load ni dung t url

    M file NATViewController.m, ti phng thc viewDidLoad.

  • 120

    Hnh 5.74 M file NATViewController.m

    Hnh 5.75 Vit code cho hm ViewDidload

    Kt qu.

    Hnh 5.76 Kt qu

  • 121

    5.5 UIALERT VIEW

    5.5.1 Gii Thiu

    UIAlertView l i tng c s dng hin th ni dung thng bo cho ngi

    dng, hoc ngi dng nhp liu.

    Hnh 5.77 UIAlertView

    Hnh 5.78 UIAlertView cho php nhp liu

    5.5.2 c im

    Khi to i tng UIAlertView

    initWithTitle: message: delegate: cancelButtonTitle: otherButtonTitles

    Cc thuc tnh ca UIAlertView

    Thuc tnh Din gii title Tiu ca Alert View.

    message Ni dung thng bo

    elegate i tng nhn gi tr t UIAlertView.

    alertViewStyle Kiu ca 1 Alert View khi hin th trn ng dng

    numberOfButtons Tr v s lng buttons c trn Alert View

    cancelButtonIndex V tr index ca button Cancel trn UIAlertView

    firstOtherButtonIndex Gi tr ca nt u tin trong UIAlertView, mc nh l 0.

  • 122

    Cc phng thc ca UIAlertView

    Phng thc Din gii

    addButtonWithTile Gn tiu cho Alert View

    buttonTitleAtIndex Ly tiu ca button ti v tr index

    textFieldAtIndex Ly ni dung ca textField ti v tr index

    show Gi 1 Alert View

    dismissWithClickedButtonIndex Hu 1 UIAlertView

    5.5.3 V D

    Hin th AlerView dng thng bo.

    Hnh 5.79 Hin th dng thng bo

    Bc 1: Ti phng thc viewDidLoad khi to i tng AlertView nh sau:

    thongBao = [[UIAlertView alloc]

    initWithTitle:@"Lac Hong University"

    message:@"Webcome to Lac Hong University"

    delegate:self

    cancelButtonTitle:@"Ok"

    otherButtonTitles:nil, nil];

    Bc 2: Hin th AlertView bng phng thc show

    Thm on code sau vo cui phng thc viewDidLoad:

    [thongBao show];

    Bc 3: Cmd + R chy th, kt qu:

  • 123

    Hnh 5.80 Kt qu hin th

    Hin th AlerView dng Text Field

    Hnh 5.81 Hin th dng Text Field

    Bc 1: Khai bo AlertView

    Ti viewDidLoad khai bo AlertView nh sau:

    Hnh 5.82 Khai bo AlertView

    Bc 2: Thit lp thuc tnh alertViewStyle cho AlertView l kiu Text.

  • 124

    Hnh 5.83 Thit lp thuc tnh

    Bc 3: Thit lp thuc tnh cho Text .

    Hnh 5.84 Thit lp thuc tnh

    Bc 4: Hin th AlertView.

    Hnh 5.85 Hin th AlertView

    Bc 5: Cmd + R chy th, kt qu:

    Hnh 5.86 Hin th kt qu

    5.6 UISLIDER

    5.6.1 Gii Thiu

    UISlider l mt i tng cho php ngi dng thay i gi tr bng cch di chuyn

    thanh trt.

  • 125

    Hnh 5.87 UISLIDER

    5.6.2 c im

    Ly gi tr t Slider:

    Cch 1: dng property value

    value property

    Cch 2: dng phng thc setValue

    setValue:animated:

    Thit lp gi tr nh nht v ln nht cho Slider:

    - Thit lp gi tr nh nht: minimumValue

    - Thit lp gi tr ln nht: maximumValue

    5.6.3 V D

    Bc 1: Thit k giao din nh sau.

    Hnh 5.88 Thit k giao din

  • 126

    Bc 2: Map cc i tng nh sau:

    Hnh 5.89 nh x cc i tng

    Kt qu sau khi Map

    Hnh 5.90 Kt qu sau khi nh x

    Bc 3: Thit lp gi tr nh nht v ln nht cho Slider trong khong 5 50.

    M ViewController.m thm on code sau vo cui phng thc

    viewDidLoad.

  • 127

    Hnh 5.91 Thit lp gi tr

    Thit lp gi tr chn mc nh l 30 thm on code sau vo cui phng

    thc viewDidLoad.

    Hnh 5.92 Thm code vo cui viewDidload

    Bc 4: Gn kt qu ca Slider vo lblGiaTriSlider khi ngi dng thay i

    thanh trt.

    Thm on code sau vo phng thc changeSlider.

    Hnh 5.93 Thm code vo phng thc changeSlider

    Bc 5: Ly gi tr t Slider gn vo lblKetQua khi ngi dng click vo button

    btnLayGiaTri.

    Hnh 5.94 Gn gi tr cho label

    Bc 6: Cmd + r chy th, kt qu.

  • 128

    Hnh 5.95 Kt qu hin th

    5.7 UIWEBVIEW

    5.7.1 Gii Thiu

    UIWebView l i tng gip hin th ni dung ca mt url no .

    Hnh 5.96 UIWebView

  • 129

    Hnh 5.97 Hin th UIWebView

    5.7.2 V D

    Bc 1: Thit k giao din nh sau.

    Hnh 5.98 Thit k giao din

  • 130

    Bc 2: Map i tng UIWebView vi tn myWebView.

    Hnh 5.99 nh x i tng

    Bc 3: Ti mt url.

    M file ViewController.m thm on code sau vo cui phng thc

    viewDidLoad.

    Hnh 5.100 Thm code vo viewDidload

    Chy th, kt qu.

    Hnh 5.101 Kt qu chy th

    Bc 4: Thc hin cc chc nng: back, next, refrest, stop.

  • 131

    Qua giao din ln lt nhn gi Ctrl cc i tng (back, next, refrest,top) v ko

    th vo UIWebView.

    Hnh 5.102 To kt cc cho cc chc nng ca button.

    Thit lp thuc tnh cho UIWebView l Scales Page To Fit.

    Hnh 5.103 Chn Scales Page To Fit

    Bc 5: Chy th, kt qu.

  • 132

    Hnh 5.104 Kt qu

    5.8 ACTIVITY INDICATOR VIEW

    5.8.1 Gii Thiu

    Activity Indicator View l mt i tng thng bo ch i cho ngi dng.

    Hnh 5.105 Activity Indicator View

    5.8.2 V D

    Bc1: Tip tc vi v d ca UIWebView, ko th i tng Activity Indicator

    View.

  • 133

    Hnh 5.106 Ko th Activity Indicator vo giao din

    Bc 2: Map i tng Activity Indicator View vi tn mySpinner.

    Hnh 5.107 nh x i tng

    Bc 3: Thm protocol trong file ViewController.h

  • 134

    Hnh 5.108 Thm Protocol UIWebViewDelegate

    Bc 4: M file ViewController.m thm 2 phng thc sau.

    - (void)webViewDidStartLoad:(UIWebView *)webView {

    //Spinner bt u quay

    [mySpinner startAnimating];

    }

    Gii thch: phng thc ny s c gi khi i tng UIWebView bt u ti

    d liu t URL.

    - (void)webViewDidFinishLoad:(UIWebView *)webView

    {

    //Ngng spinner

    [mySpinner stopAnimating];

    //Gn tiu vo "UIWebViewController"

    NSString* title = [webView stringByEvaluatingJavaScriptFromString:

    @"document.title"];

    self.navigationItem.title = title;

    };

    Gii thch: phng thc ny s c gi khi i tng UIWebView ti d liu t

    URL xong.

    Thm on code sau vo cui phng thc myWebView.delegate = self;

    cho php 2 phng thc trn i tng UIWebView qun l v t gi.

  • 135

    Bc 5: Qua giao din thit lp thuc tnh Hides When Stopped cho i tng

    Activity Indicator View.

    Hnh 5.109 Hides When Stopped

    Bc 6: chy th, kt qu:

    Hnh 5.110 Kt qu

  • 136

    5.9 ACTIONSHEET

    5.9.1 Gii Thiu

    Action Sheet Cho php ngi dng xc nhn cc hnh ng trn

    ViewController.

    Hnh 5.111 Action Sheet

    5.9.2 c im

    Khi to Action Sheet:

    initWithTitle:delegate:cancelButtonTitle:destructiveButtonTitle:otherButtonTitles

    Thit lp thuc tnh cho Action Sheet:

    - Delegate : c gi tr l nil hoc mt i tng no .

    - title: Tiu ca Action Sheets.

    - visible: n hin Action Sheet.

    - actionSheetStyle: kiu Action Sheet.

    Cu hnh cho cc button trn Action Sheet:

    - Thm button: addButtonWithTitle:

    - Ly tng s button: numberOfButtons

    - Ly tiu ca button: buttonTitleAtIndex:

    - Ly v tr ca button cancel: cancelButtonIndex

  • 137

    - Ly v tr ca button u tin: firstOtherButtonIndex

    Hin th mt Action Sheet:

    - showInView:

    5.9.3 V D

    Bc 1: Thit k giao din nh sau:

    Hnh 5.112 Thit k giao din

    Bc 2: Thm protocol v map (action) button vi tn

    touchBtn kt qu file ViewController.h

    #import

    @interface NATViewController : UIViewController

    {

    }

    - (IBAction)touchBtn:(id)sender;

    @end

  • 138

    Bc 3: Ti phng thc touchBtn khi to i tng Action Sheet:

    Hnh 5.113 Khi to Action Sheet

    Bc 4: Hin th Action Sheet bng cch thm on code bn di vo cui phng

    thc touchBtn.

    Hnh 5.114 Hin th Action Sheet

    Bc 5: Thm phng thc clickButtonAtIndext in ra button m ngi dng

    chn.

    Hnh 5.115 Phng thc in button

    Bc 6: Chy th, kt qu Output:

    Hnh 5.116 Kt qu chy th

    5.10 MK MAP VIEW

    5.10.1 Gii Thiu

    MK Map View l mt i tng cung cp giao din bn .

  • 139

    Hnh 5.117Map View

    5.10.2 V D

    Bc 1: Thit k giao din nh sau:

    Ko i tng Map View vo View Controller

    Hnh 5.118 Ko th Map View vo

  • 140

    Ko Toolbar v cc Bar button vo View Controller check thuc tnh

    Show User Location cho i tng MKMapView.

    Hnh 5.119 Thit k giao din

    Thm th vin MapKit.framework vo project:

    Hnh 5.120 Thm th vin

    M file ViewController.h import MapKit.h"

  • 141

    #import

    Chy th, kt qu:

    Hnh 5.121 Chy th

    Bc 2: Map (action) cc i tng: GPS (touchGPS), Map (touchMap), Satellite

    (touchSatellite), Hybird (touchHybird) vo ViewController.h.

    Hnh 5.122 nh x cc button

    Bc 3: Hin thc phng thc touchGPS

    M ViewController.m thm on code sau vo phng thc touchGPS:

  • 142

    Hnh 5.123 Thm code vo touchGPS

    Bc 4: Hin thc li phng thc touchMap

    M ViewController.m thm on code sau vo phng thc touchMap:

    myMapView.mapType = MKMapTypeStandard;

    Bc 5: Hin thc li phng thc touchSatellite

    M ViewController.m thm on code sau vo phng thc touchSatellite:

    myMapView.mapType = MKMapTypeSatellite;

    Bc 6: Hin thc li phng thc touchHybird

    M ViewController.m thm on code sau vo phng thc touchHybird:

    myMapView.mapType = MKMapTypeHybrid;

    Bc 7: Chy th, kt qu:

    Hnh 5.124 Kt qu

  • 143

    5.11 TABLE VIEW CONTROLLER

    5.11.1 Gii Thiu

    Table View Controller c s dng hin th d liu theo dng bng.

    Hnh 5.125 Table View

    5.11.2 V D

    Bc 1: Ko th mt Table View Controller sang giao din thit k.

  • 144

    Hnh 5.126 Ko th Table View vo giao din

    Bc 2: To mt lp tn Table View Controller gn vo Table View

    Controller va ko th.

    Nhn Ctr + N to 1 lp Chn Objective C class Class:

    TalbeViewController Subclass of: UITableViewController.

    Hnh 5.127 To class mi

  • 145

    Qua giao din gn lp va to vo TableViewController

    Hnh 5.128 Gn class vi Table View

    Bc 3: M TableViewController.m bn di @implementation... khai bo 1

    mng mangSinhVien:

    @implementation TableViewController

    NSMutableArray *mangSinhVien;

    Bc 4: Khi to mng sinh vin trong phng thc viewDidLoad.

    mangSinhVien = [[NSMutableArray alloc] initWithObjects:

    @"Nguyen Anh Tiep",

    @"Cao Thanh Vang",

    @"Nguyen Xuan Thanh",

    @"Nguyen Xuan Thao",

    @"Nguyen Xuan Hoa",

    @"Nguyen Hoai Nam",

    @"Le Thi Bich Ha",

  • 146

    @"Pham Thi Anh Nguyet",

    @"Nguyen Tien Trung", nil];

    Bc 5: Ti phng thc numberOfSectionsInTableView sa li nh sau:

    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

    {

    return 1;

    }

    Gii thch: phng thc ny cho php chng ta thit lp s Section trong Table

    View Controller. Section c dng nh sau:

    Hnh 5.129 Section

    Bc 6: Sa li phng thc numberOfRowsInSection nh sau:

    - (NSInteger)tableView:(UITableView *)tableView

    numberOfRowsInSection:(NSInteger)section

    {

    return mangSinhVien.count;

    }

  • 147

    Gii thch: phng thc ny cho php chng ta thit lp s dng trong 1 Section,

    y chnh l s phn t ca mng

    Bc 7: ti phng thc cellForRowAtIndexPath bn di // Configure the

    cell... thm on code sau hin th tn sinh vin ln Table View Controller:

    NSInteger row = indexPath.row;

    cell.textLabel.text = mangSinhVien[row];

    Bc 8: Cmd + r chy th, kt qu:

    Hnh 5.130 Kt qu

    5.12 SEARCH BAR

    5.12.1 Gii Thiu

    Search Bar c s dng tm kim trong Table View Controller.

  • 148

    Hnh 5.131 Search Bar

    5.12.2 V D

    Bc 1: Tip tc vi v d ca Table View Controller, thm i tng Search

    Bar and Search Display Controller vo Table View Controller.

    Hnh 5.132 Ko th Search Bar vo

  • 149

    Bc 2: Map i tng Search Bar vi tn mySearchBar.

    Hnh 5.133 nh x i tng

    Bc 3: B sung protocol s dng c cc phng

    thc ca i tng Search Bar.

    M TableViewController.h bn di @interface... thm vo nh sau:

    #import

    @interface TableViewController : UITableViewController

    {

    IBOutlet UISearchBar *mySearchBar;

    }

    @end

    Bc 4: M TableViewController.m thm vo phng thc timKiemDuLieu

    tm kim d liu trong mng mangSinhVien.

    - (void)timKiemDuLieu {

    NSPredicate *resultsPredicate = [NSPredicate predicateWithFormat:@"SELF contains

    [search] %@", mySearchBar.text];

    mangKetQua = [[mangSinhVien filteredArrayUsingPredicate:resultsPredicate]

    mutableCopy];

    }

  • 150

    Gii thch: phng thc filteredArrayUsingPredicate c h tr sn trong mng

    v dng tm kim d liu trong mt mng no .

    Bc 5: Thm vo phng thc textDidChange thc hin tm kim mi khi

    ngi dng nhp t kho v