Tài liệu Làm quen với Xcode part 2 doc

9 290 1
Tài liệu Làm quen với Xcode part 2 doc

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

Thông tin tài liệu

Part 2 Make Connections Hình 2,16 là một sơ đồ đối tượng cho thấy các đối tượng cần phải được kết nối trong ví dụ của bạn. bạn sẽ đặt biến đối tượng Foo's Textfield để trỏ đến các đối tượng NSTextField trên các cửa sổ hiện nay là Label. Right-click (hoặc Control- click neu bạn sử dụng chuột 1nut) vào biểu tượng đó đại diện của biến đối tượng Foo của bạn đến text filed. bảng điều khiển Inspector sau đó sẽ xuất hiện. Kéo từ Textfield đến Lable (Hình 2.17). Bước này là về tất cả các điểm: Bạn chỉ cần đặt trỏ Textfield trong đối tượng Foo của bạn để trỏ đến các textfiled Bây giờ bạn sẽ thiết lập mục tiêu của nút seed để trỏ outlet của bạn đến đối tượng Foo. ngoài ra, bạn muốn nút để kích hoạt method Foo's seed. kéo thả từ nút đến đối tượng Foo . Khi xuất hiện bảng điều khiển chọn seed: làm tương tự với generate button Bạn đã thực hiện xong giao diện Builder, nên lưu các tập tin và ẩn các ứng dụng. Quay trở lại Xcode. Back in Xcode Nếu đây là lần đầu tiên mà bạn nhìn thấy Object-c, bạn có thể khám phá rằng nó có vẻ khá khác nhau từ C + + hay Java code. Có thể được các cú pháp khác nhau, nhưng những khái niệm là cùng. Ở Java, ví dụ, một class sẽ được khai bao như thế này: import com.megacorp.Bar; import com.megacorp.Baz; public class Rex extends Bar implements Baz { .methods and instance variables . } nó thể hiện rằng class Rex thừa kế từ class Bar và thực hiện methods được khai báo trong giao diện Baz Các class tương tự trong object-csẽ được khai báo như thế này: #import <megacorp/Bar.h> #import <megacorp/Baz.h> @interface Rex : Bar <Baz> { .instance variables . } .methods . @end Nếu bạn biết Java, object-c thực sự là như vậy không lạ. Lưu ý rằng như Java,object-c duy nhất chỉ cho phép thừa kế; có nghĩa là, một class chỉ có một superclass. Types and Constants in Objective-C Mục obj-c lập trình sử dụng một vài kiểu mà không được tìm thấy trong thế giới của C. id là một trỏ đến bất cứ kiểu đối tượng. BOOL cũng giống như char nhưng được sử dụng như là một giá trị Boolean. YES is 1. NO is 0. IBOutlet là một macro mà để ước lương không có gì. Bỏ qua nó. (IBOutlet là hint để giao diện Builder khi đọc những khai báo của một class từ một tập tin.h.) IBAction cũng giống như void và vai trò như là một hint giao diện Builder. nil cũng giống như NULL. Chúng tôi sử dụng nil thay vì NULL cho đến các đối tượng. Look at the Header File Bấm vào Foo.h. Nghiên cứu nó một lúc. Foo khai báo nó là một Subclass của NSObject. biến đối tượng được khai báo trong {}. #import <Cocoa/Cocoa.h> @interface Foo : NSObject { IBOutlet NSTextField *textField; } - (IBAction)generate: (id)sender; - (IBAction)seed: (id)sender; @end #import là tương tự với những preprocessor của C # include. Tuy nhiên, #import đảm bảo rằng các tệp tin được bao gồm chỉ một lần. Bạn đang import <Cocoa/Cocoa.h> bởi vì trong đó bao gồm việc khai báo NSObject, đó là superclass của Foo. Lưu ý rằng việc khai báo của các class bắt đầu với @ interface. @là biểu tượng không được sử dụng tron ngôn ngữ lập trình C. Để giảm thiểu các nhầm lẫn giữa C và obj-C từ khóa đó là @. Dưới đây là một số các Objective-C keywords: @end, @implementation, @class, @selector, @protocol, @property, and @synthesize. nhìn chung, bạn sẽ dễ dàng hơn tìm thấy code nhập vào nếu mở syntax- aware indention. Trong Xcode Preference, chọn indentation pane. Kiểm tra hộp có nhãn Syntax-ẩe indenting , như được hiển thị trong Hình 2,20. Edit the Implementation File obj-c là một ngôn ngữ rất đơn giản. Nó không có hiển thị đặt biệt Tất cả các methods được public, và tất cả biến đối tượng được bảo vệ. (Trong thực tế, có hiển thị đặt biệt cho các biến đối tượng, nhưng chúng hiếm khi được sử dụng. Mặc định được bảo vệ, và làm việc rất hoàn hảo.) import "Foo.h" @implementation Foo - (IBAction)generate: (id)sender { // Generate a number between 1 and 100 inclusive int generated; generated = (random() % 100) + 1; NSLog(@"generated = %d", generated); // Ask the text field to change what it is displaying [textField setIntValue:generated]; } - (IBAction)seed: (id)sender { // Seed the random number generator with the time srandom(time(NULL)); [textField setStringValue:@"Generator seeded"]; } @end (Nên nhớ rằng IBAction cũng giống như void. )Bởi vì obj-C là C với một số mở rộng, bạn có thể gọi function, chẳng hạn như random() và srandom(), từ các thư viện tiêu chuẩn C và Unix. Trước khi bạn xây dựng và chạy các ứng dụng, bạn có thể muốn chỉnh sửa thêm một số chi tiết Xcode . Trước tiên, có một log, thường gọi là bàn điều khiển (console), nơi mà các lỗi của bạn sẽ xuất hiện khi bạn chạy mã của bạn. Bạn sẽ muốn xóa log sau khi chạy. Thứ hai, bạn sẽ flip từ tập tin .h tương ứng tập tin .m một nghìn lần / ngày. Chìa khóa tương đương là Command-Option-UpArrow và bạn sẽ muốn hai file xuất hiện trong cùng một cửa sổ Build and Run Khởi chạy ứng dụng của bạn. Bấm vào các nút và xem thông số ngẫu nhiên tạo ra. -Xin chúc mừng bạn có một ứng dụng làm việc Cocoa. awakeFromNib Thêm methods awakeFromNib vào Foo.m. Bạn sẽ hiểu rõ về sau. Ngắn gọn, bạn đang tạo đối tượng của NSCalendarDate đại diện cho thời điểm hiện tại. Sau đó, bạnnói cho text field để cài đặt các giá trị lịch ngày mới cho các đối tượng - (void)awakeFromNib { NSCalendarDate *now; now = [NSCalendarDate calendarDate]; [textField setObjectValue:now]; } Theo thứ tự các methods , xuất hiện trong các tập tin không phải là quan trọng. Chỉ cần chắc chắn rằng bạn thêm chúng sau @implementation và trước @end. Bạn sẽ không bao gi gọi awakeFromNib; nó được gọi tự động. Đơn giản chỉ cần xây dựng và chạy các ứng dụng của bạn một lần nữa. Bây giờ bạn sẽ thấy trong ngày và thời gian khi app chạy (Hình 2,24). . seed: làm tương tự với generate button Bạn đã thực hiện xong giao diện Builder, nên lưu các tập tin và ẩn các ứng dụng. Quay trở lại Xcode. Back in Xcode. Part 2 Make Connections Hình 2, 16 là một sơ đồ đối tượng cho thấy các đối tượng cần phải được

Ngày đăng: 24/12/2013, 07:16

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan