Coding Guidelines for Cocoa là tài nguyên tuyệt vời để trả lời bất kỳ câu hỏi quy ước đặt tên nào. Câu trả lời của tôi là càng nhiều càng tốt dựa trên điều này.
Init Method
Phương pháp init có vẻ tốt.
- (id) initWithName:(NSString *) name;
Lớp Phương pháp
Phương thức lớp có vẻ tốt.
+ (NSString *) aliasForName:(NSString *) name
Phương pháp lớp cũng có thể được sử dụng để khởi tạo thể hiện của đối tượng.Trong trường hợp này, của Apple API thường có khi bắt đầu phương pháp với tên của lớp như phương pháp buttonWithType:
UIButton
's mà có chữ ký:
+ (id)buttonWithType:(UIButtonType)buttonType
Instance Phương pháp
Tài nguyên tốt cho mã hóa quy ước cho các phương pháp có thể được tìm thấy theo số General Rules.
Phương pháp sau đây cần thả "and"
s:
- (void) methodWithApple:(NSString *) apple andOrange:(NSString *) orange
andMango:(NSString *) mango // BAD
Không sử dụng “và” liên kết từ khóa mà là thuộc tính của người nhận.
- (int)runModalForDirectory:(NSString *)path file:(NSString *) name types:(NSArray *)fileTypes;
đúng
- (int)runModalForDirectory:(NSString *)path andFile:(NSString *)name andTypes:(NSArray *)fileTypes;
sai
Chữ ký nên trông giống như sau:
- (void) methodWithApple:(NSString*)apple orange:(NSString*)orange
mango:(NSString*)mango // GOOD
.210
Cuối cùng, tôi nghĩ rằng có một vài cải tiến mà có thể được thực hiện trên những gì dường như là một phương pháp đại biểu:
- (void) statusWasChanged:(id)sender // Not horrible, but not ideal
cải thiện đầu tiên là để thêm tên lớp để phương pháp này.
Bắt đầu tên bằng cách xác định lớp của đối tượng đó là gửi thông điệp:
- (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(int)row;
- (BOOL)application:(NSApplication *)sender openFile:(NSString *)filename;
cải thiện Thứ hai là sử dụng "DidChange"
thay vì "WasChanged"
.
Sử dụng "đã làm" hoặc "sẽ" cho các phương thức được gọi để thông báo cho ủy quyền rằng điều gì đó đã xảy ra hoặc sắp xảy ra.
- (void)browserDidScroll:(NSBrowser *)sender;
- (NSUndoManager *)windowWillReturnUndoManager:(NSWindow *)window;
Cải thiện thứ ba là mạnh mẽ truyền tham số người gửi. Tôi không có tài liệu để hỗ trợ việc này, tuy nhiên tất cả các ví dụ được cung cấp trong các ví dụ đều làm xuất hiện hành vi này. Hãy chú ý đến số (NSBrowser*)sender
và (NSWindow*)window
trong mẫu mã trên được lấy trực tiếp từ tài liệu của apple.
Với điều này trong tâm trí, phương pháp đại biểu sẽ giống như hơn:
- (void) senderClassNameStatusDidChange:(SenderClassName*)sender // Good
Nếu người gửi được một người phản đối nó sẽ trông giống như:
- (void) personStatusDidChange:(Person*)sender // Good
Một lời cảnh báo là bạn không nên luôn luôn sử dụng "đã làm" trong các phương thức ủy nhiệm.
Mặc dù bạn có thể sử dụng “đã” hoặc “sẽ” cho các phương pháp được viện dẫn để hỏi các đại biểu để làm một cái gì đó đại diện cho đối tượng khác, “nên” được ưa thích.
- (BOOL)windowShouldClose:(id)sender;
Đối với 'initWithName' chắc chắn rằng bạn hiểu làm thế nào ARC sẽ đối xử này (ví dụ: trả về một đối tượng giữ lại) – Thilo
quy ước đặt tên của bạn là tốt .. –