如何在Objective-C分类方法内部访问调用该方法的数组?
Objective-C数组分类无参数实例方法实现
在Objective-C的分类实例方法中,self关键字就代表调用该方法的数组对象,完全不需要额外传入数组参数。下面是具体的实现步骤:
1. 创建数组分类的头文件(例如NSArray+Reverse.h)
#import <Foundation/Foundation.h> @interface NSArray (Reverse) // 无参数的实例方法声明 - (NSArray *)reversed; @end
2. 实现分类的源文件(NSArray+Reverse.m)
#import "NSArray+Reverse.h" @implementation NSArray (Reverse) - (NSArray *)reversed { // self即为调用该方法的原数组实例 NSMutableArray *reversedArray = [NSMutableArray arrayWithCapacity:self.count]; // 逆序遍历原数组构建新数组 for (NSInteger i = self.count - 1; i >= 0; i--) { [reversedArray addObject:self[i]]; } return [reversedArray copy]; } @end
3. 调用示例
NSArray *originalArray = @[@"A", @"B", @"C"]; NSArray *reversedArray = [originalArray reversed]; NSLog(@"%@", reversedArray); // 输出: (C, B, A)
需要注意,这里定义的是实例方法(以-开头),而非类方法(以+开头)。实例方法的特性就是天然持有调用它的对象引用,self指向的就是触发该方法的数组实例。
内容的提问来源于stack exchange,提问作者ObjCJon
相关产品推荐
相关产品推荐

