Video: Vẽ trên iPad Pro như vẽ trên giấy! 2025
Để làm cho các biến dụ có sẵn bên ngoài lớp định nghĩa của chúng một cách có kiểm soát, cách tốt nhất trong phát triển ứng dụng iOS là viết các phương thức accessor (còn gọi là > getters và setters ). Thuộc tính cung cấp một cách tuyên bố để làm như vậy thông qua việc sử dụng các tài sản chỉ thị @ tài sản và @synthesize. Bằng cách sử dụng kiểu khai báo, bạn làm cho chương trình của bạn làm điều gì đó mà không cần viết bất kỳ mã nào. Mã được viết, nhưng do trình biên dịch (mà tự động tạo các phương thức accessor), không phải do bạn.
Để bắt đầu, thuộc tính phải được khai báo trong giao diện của lớp StackOfInteger. Đoạn mã dưới đây chỉ ra cách thực hiện bằng cách sử dụng chỉ thị trình biên dịch @property:
@interface StackOfInteger: NSObject {@ protected ∎ Đây là thành phần NSMutableArray * mặc định; @private int last;} @property (readonly, atomic) int stackPointer; … các phương pháp StackOfInteger khác -d
Lưu ý rằng, mặc dù từ
thuộc tính dường như có ý nghĩa gần với biến hơn đối với một phương thức, định nghĩa thuộc tính sẽ nằm trong phần mà các phương pháp được định nghĩa, nơi mà các biến dụ được xác định. Lưu ý rằng thuộc tính này có hai thuộc tính: nguyên tử và chỉ đọc.
Trong ví dụ này, thuộc tính stackPointer được liên kết với biến thể cuối cùng. Hướng dẫn tổng hợp sẽ như sau:
Tài sản đã sẵn sàng để sử dụng.
Bạn có thể sử dụng thuộc tính theo hai cách, như thể hiện trong chức năng chính của ví dụ:
Bạn có thể sử dụng một phương pháp accessor:
-
printf ("Count of elements% dn", [myStack stackPointer]);
Hoặc bạn có thể sử dụng dấu chấm để làm điều tương tự, như được hiển thị ở đây:
-
printf ("Số lượng các phần tử sử dụng dấu chấm% dn", myStack.stackPointer);
Lưu ý rằng tên của accessor (getters và setters) theo một quy ước đặt tên. Phương thức getter là tên của thuộc tính. Vì vậy, đối với tài sản stackPointer, phương pháp getter cũng là stackPointer. Phương thức setter là tên của thuộc tính trong trường hợp lạc đà được đặt trước bởi chuỗi - tên của phương thức setter cho stackPointer là setStackPointer.
Sử dụng
trường hợp câu lạc bộ lạc đà (một chữ cái viết hoa ở giữa một thuật ngữ) khi đánh vần các phương pháp này. Vì vậy, S trong từ stack là chữ hoa trong tên của phương thức setter, mặc dù nó không được viết hoa trong tên của thuộc tính. Lưu ý rằng phương thức setter không được tạo ra cho thuộc tính này vì nó là chỉ đọc. Đã đến lúc chuyển sang các thuộc tính của thuộc tính. Tất cả đều nằm trong danh sách dưới đây cùng với những gì chúng làm:
nonatomic: Theo mặc định, các phương thức accessor được tạo ra cho các thuộc tính bao gồm khóa để đảm bảo an toàn cho việc truy cập đồng thời bằng các chương trình đa luồng. Cụ thể, hành vi mặc định là nguyên tử. Nếu bạn sử dụng thuộc tính nonatomic, không khóa được sử dụng.
-
Không có thuộc tính tên nguyên tử (hoạt động nguyên tử được thừa nhận là do thiếu thuộc tính nonatom).
readwrite: Nếu bạn sử dụng thuộc tính này, nó có thể được viết để đọc cũng như. Cả getter và setter đều được cung cấp khi tổng hợp.
-
chỉ đọc: Trình biên dịch chỉ làm cho một trình getter có sẵn.
