gpt4 book ai didi

objective-c - 新手试图理解 .h 文件中的多个 @interface

转载 作者:可可西里 更新时间:2023-11-01 03:47:44 26 4
gpt4 key购买 nike

我是一个新手,试图获取一个免费软件应用程序,最后一次更新是在 2008 年,因为(显然)被程序员放弃了,他们没有回复我的电子邮件,并且都为当前的 MacOS 更新它并创建一个iPhone 版本。我想这将是一个漫长且有点噩梦般的过程,但我期待学习。

现在我正处于起步阶段,我正在查看原始的以下 GeniusPair.h 文件:

#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

我的问题是(questions are):为什么一个.h文件中有多个接口(interface)? @interface GeniusPair : NSObject@interface GeniusPair (TextImportExport) 有什么区别? @interface 后跟括号中的内容与 @interface 后跟冒号有什么区别?

非常感谢您帮助解释。

最佳答案

它被称为类别。类别对于扩展类(当您没有它们的源代码,如 UIKit 或 Foundation 类)或将类的扩展/高级功能与其基方法分开(您遇到过这种情况)时非常有用。

当在 .m 文件的实现(而不是声明)上下文中使用时,它们还可以用于模拟私有(private)方法。

有关该主题的更多信息,请访问 Apple Developer. .

关于objective-c - 新手试图理解 .h 文件中的多个 @interface,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12570654/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com