Video: Introduction to iOS, by Rhed Shi 2025
Trước khi sử dụng Interface Builder để tạo các phần tử cho chế độ Modal của ứng dụng iPad, trước hết bạn phải đặt các cửa hàng trong mã ứng dụng của bạn sẽ kết nối các phương pháp của bạn với các đối tượng Giao diện Trình Giao diện. Bạn cần phải làm ba điều trong mã của bạn để trình biên dịch tạo các accessors cho bạn:
-
Khai báo một biến thể trong tệp giao diện.
-
Thêm một khai báo @ property của biến thể đó trong cùng một tệp giao diện (thường với thuộc tính nonatomic).
Tuyên bố chỉ rõ tên và kiểu của thuộc tính, cũng như một số thuộc tính cung cấp trình biên dịch với thông tin về chính xác bạn muốn các phương thức accessor được thực hiện như thế nào.
Ví dụ, tờ khai @ tài sản (nonatomic, assign) NSString * wordsOfWisdom; khai báo một thuộc tính có tên wordsOfWisdom, là một con trỏ tới một đối tượng NSString. Đối với hai thuộc tính - nonatomic và assign - nonatomic nói với trình dịch để tạo ra một accessor để trả về giá trị trực tiếp, đó là một cách khác để nói rằng accessors có thể bị gián đoạn trong khi sử dụng. Giá trị thứ hai gán cho trình biên dịch tạo một phương thức accessor gửi thông điệp gán tới bất kỳ đối tượng nào được gán cho thuộc tính này.
-
Sử dụng @synthesize trong tệp thực hiện để Objective-C tạo ra các accessors cho bạn.
Khai báo @property chỉ tuyên bố rằng không nên có các accessors. Đó là câu lệnh @synthesize cho biết trình biên dịch tạo ra chúng cho bạn.
Trong mã ví dụ sau, bạn cần phải tạo ra hai cửa hàng: một để trỏ đến một trường nhập văn bản và một để trỏ đến một thanh trượt tốc độ. Để bắt đầu kinh doanh đầu ra, bạn cần khai báo mỗi cửa hàng, mà bạn làm với sự trợ giúp của từ khóa IBOutlet.
#import @protocol SettingsViewControllerDelegate; @interface SettingsViewController: UIViewController {ủy quyền; NSString * wordsOfWisdom; float sliderValue; IBOutlet UITextField * theTextField; IBOutlet UISlider * slider;} - (IBAction) được thực hiện; - (IBAction) speedChanged: (id) người gửi; @property (nonatomic, assign) id đại biểu; @ tài sản (nonatomic, gán) NSString * wordsOfWisdom; @ tài sản (nonatomic, gán) thanh trượt UISlider *; @end @protocol SettingsViewControllerDelegate - (void) settingsViewControllerDidFinish: (SettingsViewController *) bộ điều khiển; - (void) changeSpeed: (đôi) newSpeed; @end
Hai phương thức hành động (thực hiện và speedChanged) cho các phần tử Giao diện Builder được khai báo (với IBAction), cùng với câu lệnh IBOutlet, tuyên bố các cửa hàng sẽ được khởi tạo tự động với một con trỏ đến UITextField (theTextField) và UISlider (thanh trượt) khi ứng dụng được khởi chạy.Nhưng trong khi điều này sẽ xảy ra tự động, nó sẽ không tự động xảy ra tự động. Bạn phải giúp nó một chút.
Các phương thức cung cấp truy cập đến các biến dụ của một đối tượng được gọi là các phương thức accessors, và chúng có hiệu quả (sử dụng một phương thức getter) và thiết lập (sử dụng một phương thức setter) các giá trị cho một biến cá thể. Mặc dù bạn có thể mã các phương pháp đó cho mình, nó có thể được khá tẻ nhạt. Đây là nơi các thuộc tính được đưa vào Tính năng Thuộc tính Khai báo Mục tiêu-C cung cấp một cách đơn giản để khai báo và triển khai các phương thức accessor của đối tượng. Trình biên dịch có thể tổng hợp các phương thức accessor theo cách bạn đã nói với nó trong khai báo thuộc tính.
