0

是否可以在不修改 .h 或 .m 文件的情况下向 ObjC 类添加方法?

例如,在 JavaScript 中,您可以从任何地方向原型添加方法,例如向 Array 原型添加方法:

Array.prototype.stackOverflow = function(parameters);
4

2 回答 2

3

您可以使用类别。

Objective-C 编程语言:类别和扩展

于 2012-07-17T12:17:49.750 回答
2

您可以为此使用 Objective-C 类别。

检查此链接: http: //macdevelopertips.com/objective-c/objective-c-categories.html

这是从该链接中获取的示例(注意我没有写这部分)


例如,下面我定义了一个向 NSString 类添加方法的类别。reverseString 方法为所有 NSString 对象添加了反转字符串中字符的能力。

@interface NSString (reverse)
-(NSString *) reverseString;
@end

与@interface 声明一样,@implementation 部分的变化仅在于将类别名称添加到定义中。下面是上面定义的接口的实现。请注意在这两种情况下我如何添加 (reverse) ,这是我分配的类别名称。

@implementation NSString (reverse)

-(NSString *) reverseString
{
// SNIP: implementation of reverse string
return reversedStr;
}

@end
于 2012-07-17T12:20:13.097 回答