Kể từ khi bắt đầu làm việc trên các ứng dụng iOS và mục tiêu C, tôi đã thực sự bối rối trước các vị trí khác nhau nơi người ta có thể khai báo và xác định các biến. Một mặt chúng tôi có phương pháp C truyền thống, mặt khác chúng tôi có các chỉ thị ObjectiveC mới bổ sung OO trên đó. Mọi người có thể giúp tôi hiểu về phương pháp hay nhất và các tình huống mà tôi muốn sử dụng các vị trí này cho các biến của mình và có thể sửa lại hiểu biết hiện tại của tôi không?
Đây là một lớp mẫu (.h và .m):
#import <Foundation/Foundation.h>
// 1) What do I declare here?
@interface SampleClass : NSObject
{
// 2) ivar declarations
// Pretty much never used?
}
// 3) class-specific method / property declarations
@end
và
#import "SampleClass.h"
// 4) what goes here?
@interface SampleClass()
// 5) private interface, can define private methods and properties here
@end
@implementation SampleClass
{
// 6) define ivars
}
// 7) define methods and synthesize properties from both public and private
// interfaces
@end
- Sự hiểu biết của tôi về 1 và 4 là đó là những khai báo và định nghĩa dựa trên tệp kiểu C không hiểu gì về khái niệm lớp, và do đó phải được sử dụng chính xác cách chúng sẽ được sử dụng trong C. Tôi đã thấy chúng được sử dụng để triển khai các singlet dựa trên biến tĩnh trước đây. Có cách sử dụng tiện lợi nào khác mà tôi đang thiếu không?
- Kinh nghiệm của tôi khi làm việc với iOS là các ivars đã bị loại bỏ hoàn toàn bên ngoài chỉ thị @synthesize và do đó hầu như có thể bị bỏ qua. Đó là trường hợp?
- Về thứ 5: tại sao tôi lại muốn khai báo các phương thức trong các giao diện riêng tư? Các phương thức lớp riêng của tôi dường như biên dịch tốt mà không cần khai báo trong giao diện. Nó chủ yếu là để dễ đọc?
Cảm ơn rất nhiều, folks!