Tôi là một newbie, cố gắng để có một ứng dụng phần mềm miễn phí cập nhật lần cuối vào năm 2008 và kể từ khi (rõ ràng) bị bỏ rơi bởi các lập trình viên, những người đã không trả lời email của tôi, và cả hai cập nhật nó cho MacOS hiện tại và cũng tạo ra một phiên bản cho iPhone. Tôi tưởng tượng điều này sẽ là một quá trình lâu dài và hơi ác mộng nhưng tôi rất mong được học hỏi.newbie cố gắng hiểu nhiều @interface trong .h file
Ngay bây giờ tôi đang ở giai đoạn đầu, và tôi nhìn vào các tập tin GeniusPair.h sau trong bản gốc:
#import <Foundation/Foundation.h>
@class GeniusItem;
@class GeniusAssociation;
extern const int kGeniusPairDisabledImportance;
extern const int kGeniusPairMinimumImportance;
extern const int kGeniusPairNormalImportance;
extern const int kGeniusPairMaximumImportance;
@interface GeniusPair : NSObject <NSCoding, NSCopying> {
GeniusAssociation * _associationAB; //!< Stats for standard learning mode directional relationship.
GeniusAssociation * _associationBA; //!< Stats for Jepardy style learning mode directional relationship.
NSMutableDictionary * _userDict;
}
+ (NSArray *) associationsForPairs:(NSArray *)pairs useAB:(BOOL)useAB useBA:(BOOL)useBA;
- (id) initWithItemA:(GeniusItem *)itemA itemB:(GeniusItem *)itemB userDict:(NSMutableDictionary *)userDict;
//various other methods declared
@end
@interface GeniusPair (GeniusDocumentAdditions)
- (BOOL) disabled;
//various other methods declared
@end
@interface GeniusPair (TextImportExport)
- (NSString *) tabularTextByOrder:(NSArray *)keyPaths;
//various other methods declared
@end
Câu hỏi của tôi là (câu hỏi): Tại sao có nhiều hơn một trong một tệp .h? Sự khác biệt giữa @interface GeniusPair : NSObject
và @interface GeniusPair (TextImportExport)
là gì? Những gì có một @interface
tiếp theo là một cái gì đó trong ngoặc đơn làm vs @interface
theo sau là dấu hai chấm?
Cảm ơn bạn rất nhiều vì đã giúp bạn giải thích.
Tôi cũng muốn khai báo giao diện ở đầu tệp .m để thực hiện các phương thức riêng tư giả, vì chúng sẽ chỉ được hiển thị bởi chính lớp đó chứ không phải bởi các lớp khác (tất nhiên chúng vẫn có thể gọi được) một lớp bên ngoài bây giờ họ đang có). – Simon
@Simon yep, tôi cũng vậy, sẽ thêm điều đó. –
Cảm ơn bạn rất nhiều! –