是否可以在不修改 .h 或 .m 文件的情况下向 ObjC 类添加方法?
例如,在 JavaScript 中,您可以从任何地方向原型添加方法,例如向 Array 原型添加方法:
Array.prototype.stackOverflow = function(parameters);
是否可以在不修改 .h 或 .m 文件的情况下向 ObjC 类添加方法?
例如,在 JavaScript 中,您可以从任何地方向原型添加方法,例如向 Array 原型添加方法:
Array.prototype.stackOverflow = function(parameters);
您可以使用类别。
您可以为此使用 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