You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 02:54:51