1. Trang chủ
  2. » Luận Văn - Báo Cáo

Giáo án bài giảng: Lập trình ứng dụng trên iOS

28 671 1
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 1,35 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Noi dung Giới thiệu về ObjecTive- -C Quy tắc đặt tên lớp, tên phương thức, †ên biến Class trong Objective-C Pham vi truy xuat cdc biến thể hiện Property trong Objective-C Phương thuc

Trang 1

Lap trinh wng dung trén iOS

Objective-C

Trang 2

Noi dung

Giới thiệu về ObjecTive- -C

Quy tắc đặt tên lớp, tên phương thức, †ên biến Class trong Objective-C

Pham vi truy xuat cdc biến thể hiện

Property trong Objective-C

Phương thuc trong Objective-C

Category trong Objective-C

Protocol trong Objective-C

Trang 3

Gidi thiéu vé Objective-C

° Ngôn ngữ lập †rình hướng đối tượng

© ANSI C + Smalltalk = Objective-C

* Objective-C la ngon ngU lap trinh chính dugc Apple chon dé viét cac Ung dung

cho hé diéu hanh Mac OS, iOS

> Dễ dang nắm bắ† được ngôn ngữ

Objective-C nếu có "kinh nghiệm” vê €

Trang 4

Quy tắc đặt tên

@interface MyClass : NSObject {

end

~ Bat dau bang ky tu hoa

© Method © -woia) finame;

Trang 5

Class trong ÔbJecfiue-C

¢ @interface: Khai bdo class

* implementation: Dinh nghia class

© @end: Két †húc khai báo class hoặc két

thúc định nghĩa cÌlass

Trang 6

Pham vi truy xuat các biến

* @private: Gidi han pham vi trong lop ma biến thể hiện được khai bdo

* @protected (default): Gioi han pham vi

trong lớp và lớp con kế thừa mà biến thể

hiện được khai báo

»„ @public: Không giới hạn phạm vi †ruy

xuất

Trang 7

Pham vi fruy xuất các biến (tt)

Trang 8

Property trong Objective-C

¢ Property cho phép dinh nghia cac bd

truy xuat (setter/getter)

> Thuan loi cho viéc truy xuat dén cdc bién thé hién

¢ Dinh nghia trong file h

©property (<attributes>) type propertyName:

¢ Thuc thi trong file m

@synthesize propertyName;

Trang 9

Property trong ODjective-C (tft)

¢ Cac thudc tinh (attributes)

— readwrite (default): doc va ghi (get/set)

— read-only: chi co thé doc (get)

— assign (default): Thường dùng với các kiểu

vô hướng như NSTn†eger, C6Floa†, CGrect

— retain: Thuong được sử dụng cho đối †tượng

— copy: Tạo một bản sao của đối tudng sé

được sử dụng cho đối †ượng chỉ định

— atomic (default): Thực hiện đồng bộ hoá

— nona†omic: Ngược với a†omic

Trang 10

Property trong ODjective-C (tft)

¢ Cac thudc tinh (attributes)

Trang 11

Property trong ODjective-C (tft)

Các thu6éc tinh (attributes)

Trang 12

Phuong thurc trong Objective-C

Class method

— Ky hiéu dau +

— Truy xuat thong qua tén lớp

— Khong thé †ruy cập vào các biến thể hiện

Trang 13

Phuong thuc trong Objective-C (tft)

° Khai báo phương thức:

-/+ (re†urn_ †ype) me†hod;

-/+ (return_type) methodParal : (type) paral;

-/+ (return_type) methodParal : (type) paral andPara2: (type) para2;

° GỌI phương thức:

// Class method

MyClass *myClass = [MyClass method];

// Instance method

[ob ject method];

[ob ject methodParal:pat];

[object methodParal:pal andPara2:pa2];

Trang 14

Category trong Objective-C

* Khi muon thém mot so phuOong thức vào

mỘT lớp có săn

- Mở rộng lớp đó bằng cách viết lại mã nguồn

— Mở rộng lớp đó không cần viết lại mã nguồn

Trang 15

Category trong ODjective-C (tft)

° Thểm mộ† phương †hức newMethod cho lớp MyClass thong qua Category

Chú ý: - Tên của Category là duy nhất (Không được trùng)

- Trong Category không cho phép thêm các biên thể hiện

Trang 16

Procol trong ObJecfiue-C

¢ Protocol la gi ?

¢ Vi du:

@protocol MyProtocol // required (default)

Trang 17

Kế thừa

Person

J

° Tương †ự như các ngôn ngữ khác Teacher

° Trong Objective-C, roo† class cua tat ca

Trang 18

NSFileManager *fileManager = [NSFileManager defaultManager] ;

if (![fiLeManager fileExistsAtPath: [[[NSBundle mainBundle]

resourcePath] stringByAppendingPathComponent:@"abc.txt"]]) {

@throw [NSException exceptionWithName:@"Error!!!" reason:

@"This file doesn't exist" userInfo:nil];

cancelButtonTitle:nil otherButtonTitles:@"0K", nil] autorelease

Trang 19

Một số cấu truc điều khiển

Trang 21

Quản lớ bộ nhớ

* Cdc nguyén tac quan ly bd nho

— Nguyén tac can ban

°- Khi bạn năm quyền sở hữu một† đối tượng, khởi †ao đối tượng bằng

các phuong thuc ma trong tén bat dau voi voi alloc hoặc new hoặc

Copy (ví dụ, alloc, newObjec† hoặc mu†ableCopy ) hoặc gửi một - thong điệp retain, ban phai có trach nhiệm giải phóng quyên sở hữu

doi tượng đó băng cách sử dụng release hoac autorelease Bat ky

khi nào bạn nhận được mộ† đôi †ượng (không phải †ự mình khởi tao),

bạn không được releose nó

— Nguyễn †ắc khác

°- Khi bạn cân lưu trữ một đối tượng được nhận như mộ† Sea

†rong một biên thể hiện, bạn phải re†ain hoặc copy nó (Điêu này không đúng cho cho tham khảo yếu, nhưng đây là điển hình hiểm)

°- Một đối tượng được nhận thường đảm bảo vân có hiệu lực trong

phương thức mà nó đã được nhận (ngoại †rừ bi bà bánh Ung da luông

va vai truong hop Distributes Objects) Phuong thuc do co thé tra

vê an †oản đôi tượng mỏ nó được Triệu gọi Sử dụng re†ain trong

việc kế† hợp với release hoặc qu†oreÌease khi cân thiét dé bao vệ một đối tượng khỏi hiệu lực của các thông điệp không hợp lệ bền

ngoài

° qu†orelease có nghĩa là “gui mot thong diép release sau đó

Trang 22

Quản lý bộ nhớ

° Vấn đê khi khởi †ạo đối tượng

MyClass *myClass = [MyClass alloc];

[myClass init];

if(myClass) {

hi

Trang 23

Quản IV bộ nhớ

° Vấn đê khi khởi †ạo đối tượng (††)

MyClass *myClass = [[MyClass alloc] init];

if(myClass) {

Haws

}

Chú ý: - Luôn luôn trả về nil trong phương thức init nếu có lỗi xảy ra

- Phải kết hợp 02 lời gọi phương thức alloc va init

Trang 24

Quản lớ bộ nhớ

¢ Release

— Chi dugc release khi khdi tao déi tượng

mot cach thu cong alloc

~ KHONG release thu céng mat déi tuong

autorelease > CRASH

// Must release string1 when done

NSString *string1 = [[NSString alloc] init];

Trang 25

2 cá nN V4

Quản lý bộ nhớ

AKON G'

- Mỗi đối tượng có mộ† bộ đếm được sử dụng để kiểm

soát †ất cả các tham chiếu bởi đối tượng hoặc nó có

— Phuong thuc alloc, new, copy va retain đêu làm †ăng

bộ đếm lên 1

— Phuong thuc release giam b6 dém di 1

- Khi bộ đếm có giá †rị bằng O > Phuong thtic dealloc

của đối tượng sẽ được gọi

- Để xác định giá †rị cua b6 dém: [object retainCount]

Trang 26

- Nếu một lớp có các biến thể hiện (instance

variable) là các đối tượng thì †rong phương

†hức dealloc của lớp phải thực hiện giải

phóng các biến thể hiện này

Trang 27

Quản lớ bộ nhớ

* Tham chiéu yéu

— Tao tham chiéu dén d6éi tugng ma khong can

tro déi tudng †ự giải phóng chính nó >

ThiếT lập tham chiếu ˆyếu” đến đối tượng

Trang 28

Selector trong Objective-C

¢ Selector trong Objective-C co 02 y

nghia:

— Chi dén tén clla mOt phuong thuc khi nó

được sử dụng †rong mã nguôn mộT thông

điệp gởi đến một đối tượng

- Chỉ đến một định danh duy nhất mà †hay †hế

cho mộ† †ên khi mã nguồn được biên dịch

Ngày đăng: 22/04/2014, 16:15

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w