1. Trang chủ
  2. » Công Nghệ Thông Tin

[Bài Học Số 2] Cơ Bản Objective Cx

19 446 3
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 19
Dung lượng 36,85 KB

Nội dung

Lập trình ios

Trang 1

@end  

Trang 2

Objective-C sử dụng từ khóa @implementation để khai báo phần thực thi thực sự của lớp trong file m Từ khóa @end được sử dụng ở cuối phần khai báo.

-(void) setvara : (int) x  

-(void) setvarb : (int) y  

@implementation MyClass -(void) setvara  int) x { 

Trang 3

[Access Privilege](return_type) methodname: (type1) para1 : (type2) para2 ( ); 

Gọi phương thứcPHP Code:

[object methodname:para1 : para2…];  Ví dụ:

Trang 4

Khai báoPHP Code:

-(MyClass*) constructor: (int) a : (int) b;  Triển khai

Objective-C qui định phần định nghĩa truy xuất như sau

Phương thức truy xuất thông qua tên lớp sẽ có ký hiệu là dấu +Phương thức truy xuất thông qua đối tượng sẽ có ký hiệu là dấu –PHP Code:

-(MyClass*) staticMethod: (int) a : (int) b  

-(MyClass*) publicMethod: (int) a : (int) b  

@end  

Trang 5

Trong trường hợp phương thức có nhiều tham số, và để thể hiện được ý nghĩa của các tham số trong lời gọi phương thức, Objective-C cho phép một cú pháp khai báo khác cho phương thức như sau:

Trang 6

-(void) setvara : (int) x  

-(void) setvarb : (int) y  

Trang 7

Trong đó phương thức alloc là cấp phát vùng nhớ, còn phương thức init như là một phương thức tạo mặc định trong Objective-C, được định nghĩa trong lớp NSObject.

@interface MyClass: NSObject { 

Trang 8

Định nghĩa trong file.h:PHP Code:

  @property (<attributes>) type propertyName;  Thực thi trong file.m:

PHP Code:

#import “Address.h”   

Trang 9

PHP Code:

Trang 10

retain: retain nên được triệu gọi trên đối tượng được chỉ định.

copy: một bản sao của đối tượng sẽ được sử dụng cho đối tượng chỉ định.Ta có thể hình dung như sau

PHP Code:

@property (readwrite, copy) NSString *sVar;  Properties này tương tự như settor sau

PHP Code:

Nếu bạn sử dụng bộ thu gom rác, bạn sẽ không bị cảnh báo nếu không chỉ định assign, retain hay copy (mặc định khi đó là assign), trừ khi kiểu của Properties là một lớp thích hợp với NSCopying Để mặc định thường là những gì bạn muốn, tuy nhiên, nếu đối tượng có thể sao chép thì để bảo tồn tính bao đóng bạn thường muốn làm một bản sao chép riêng cho đốitượng.

Nếu bạn sử dụng bộ thu gom rác thì assign và retain có hiệu lực như nhau

Atomicity: thuộc tính này chỉ ra Properties là không atomicity với từ khóa nonatomic Việc này tương tự như đồng bộ hóa trong khái niệm Thread, Properties này sẽ bị block và thực hiện đồng bộ Mặc định là atomic.

1.2 Category

Khi ta muốn thêm một số phương thức vào một lớp có sẵn, thông thường ta sẽ mở rộng lớp đó bằng cách viết lại mã nguồn Objective-C cung cấp tính năng Category cho phép ta mở rộng lớp mà không cần phải viết lại mã nguồn của lớp cũ Category cho phép ta mở rộng lớp cũ trong một bộ thực thi khác.

Trang 11

Giả sử ta có một lớp MyClass đã định nghĩa

Trang 12

Sử dụng như sauPHP Code:

// ================================= // = Interface for hidden methods 

Trang 13

@implementation SomeClass 

Trang 14

// Display message (including messages from hidden methods) 

Trang 15

@implementation Fraction -(void) print { 

Trang 16

PHP Code:

Fraction *frac = [[Fraction alloc] init]; 

Trang 17

  

Trang 18

PHP Code:

PHP Code:// Interface 

PHP Code:

@implementation SomeClass 

Trang 19

SomeClass triển khai Protocol NSCoding theo cú pháp <Protocol>@interface ClassName : ItsSuperclass < protocol list >

@interface ClassName ( CategoryName ) < protocol list >

Ví dụ:PHP Code:

Protocol được sử dụng trong các trường hợp:

- Khai báo các phương thức dự kiến sẽ được thực thi

- Khai báo một interface cho một đối tượng trong khi ẩn đi lớp của nó

- Khảo sát tương đồng giữa các lớp mà không phải liên quan đến cấu trúc thứ bậc

Ngày đăng: 23/02/2013, 09:29

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w