Object C

I. Thông tin chung:

– Lập trình IOS cần phải biết về ngôn ngữ C Object. Vì C Object là ngôn ngữ chính của Apple trong việc phát triển các chương trình trong Mac OS (IOS lẫn Mac OS). Đây là ngôn ngữ chính thức để lập trình với Apple.

– Dĩ nhiên bạn có thể dùng các ngôn ngữ khác để lập trình;

+ PHP: Ngôn ngữ đánh dấu văn bản có thể được sử dụng để viết chương trình với IOS nhưng nó có những hạn chế riêng

+ C# với Mono Touch, bạn có thể chuyển ngôn ngữ sang để lập trình với IOS nhưng nó không phải là chính thức mà thông qua một hãng thứ ba (không phải là Apple cho chính thức phát hành).

+ Lua (ngôn ngữ lập trình Script) với Codea lập trình hoàn toàn trên Ipad. Có một số dự án đã hoàn thành như (Cargo Bot, …) tiện lợi nhưng không trực quan, và cách để có được chương trình trên Apple tương đối phức tạp (Export).

+ Ngoài ra vẫn có thể sử dụng C và C++ để lập trình Iphone

+ Java cũng có thể lập trình Iphone được

+ Một số ngôn ngữ khác nhưng tôi không biết

=> C Object vẫn là ưu tiên hàng đầu khi lập trình Iphone/Ipad vì đây là ngôn ngữ chính được hỗ trợ bởi chính Apple
=> Object C không hể dựa trên C++ như nhiều người lầm tưởng vì chúng ra đời trong cùng một năm (1983)

II. Nội dung chính:

Tuy là học về Object C nhưng sự khác nhau về mục đích sẽ làm cách học khác nhau ví dụ bạn học Object C để viết phần mềm cho Mac nó khác khi viết cho IOS. Sự phát triển của các công cụ hỗ trợ IDE rất nhanh, có những thứ thật sự bạn không cần phải quan tâm nữa.

Đối với các lập trình viên C, việc quản lý bộ nhớ là vô cùng quan trọng, bộ nhớ của các thiết bị di động lúc trước là rất nhỏ, tiết kiệm được chút bộ nhớ sẽ làm chương trình chạy mượt mà hơn. Tuy nhiên hiện tại thì việc đó không còn cần thiết nữa do IDE mới đã tích hợp bộ ARC (Automatic Release Control) giúp cho các lập trình viên không cần phải quan tâm nhiều đến việc quản lý bộ nhớ. ARC đã loại bỏ hẳn việc release bộ nhớ.

Như vậy bạn phải hiểu rằng, công nghệ thông tin có những thay đổi vượt bậc và việc làm theo những cách cũ hay hiểu biết những thứ như vậy chả giúp ích gì cho việc lập trình nó chỉ làm cho bạn vất vả thêm, chương trình ra chậm hơn.

1. Đặc điểm cơ bản:

– Là ngôn ngữ hướng đối tượng

– Mở rộng từ C

– Nhẹ nhàng (không sử dụng VM – không quá thực tạp với friend virtuals với template với….)

– Mềm dẻo (mở rộng từ C nên bạn có thể dùng C thuần cấu trúc ngoài ra đây là ngôn ngữ run-time)

– Reflection (có hỗ trợ)

– nil thay thế cho NULL trong C, bởi vì bạn có thể gửi thông điệp cho nil, nhưng không thể làm như vậy với NULL.

– BOOL có 2 giá trị là YES và NO chứ không phải là true và false nữa.

– Khái niệm methods và message đc sử dụng mang ý nghĩa như nhau đối với ObC theo đó message có những thuộc tính đặc biệt. Mọto message có thể chuyền động từ obj tới một obj khác. Việc gọi thông điệp trên một obj không có nghĩa là obj đó sẽ thực hiện message nó có thể chuyển tiếp tới một obj khác chưa biết trước tóm lại có khả năng đáp trả thông điệp không trực tiệp thì gián tiếp.

Khi làm việc với Objective C bạn cần chú ý là bởi vì nó đượcc base trên nền của C cho nên việc bạn sử dụng cú pháp C chộn lẫn với cú pháp chính thống của Objective C là hoàn toàn chấp nhận, tuy nhìn có vẻ hơi củ chuối.

Phương thức:

1. Enum trong lập trình C Object

typedef enum {

   Monday=1,

   …

} WORKDAYS;

WORKDAYS today = Monday;

=> Cách sử dụng enum trong lập trình C Object

2. Cách khai báo phương thức trong Objective C
Không tham số :

<(kiểu trả về)> Tên phương thức ví dụ -(void) print;

Có tham số:

<(kiểu trả về)> Tên_phương_thức :<(kiểu)> Tên_Biến :<(kiểu)> Tên_Biến;

* Ví dụ: -(void) setDenominator: (int) d;
Lời gọi phương thức:
không trả về: [<đối tượng> ];
[<đối tượng> :<(kiểu)> ];
[<đối tượng> :<(kiểu)> :<(kiểu)> ];
Trả về kết quả: = [<đối tượng> ];
= [<đối tượng> :<(kiểu)> :<(kiểu)> ];

3. Kết nối hyperlink với chương trình IOS:

– Chương trình sẽ tự động mở Safari và kết nối tới website: huygamer.wordpress.com

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@”https://huygamer.wordpress.com”%5D%5D;

2 thoughts on “Object C

  1. vịnh March 4, 2013 at 10:50 am Reply

    rất bổ ích. E cảm ơn a. A có thể cho e xin skype hoặc yahoo, mail. Để e có thể liên hệ trợ giúp khi có khó khăn trong quá trình học được không ạ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: