gpt4 book ai didi

objective-c - 从 NSArray 获取子数组的最优雅的方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:58 24 4
gpt4 key购买 nike

在 Python 中,我可以像这样轻松地获得一个子数组

>> v1 = ['a', 'b', 'c', 'd']
>> v2 = v1[1:]
>> v2
['b', 'c', 'd']

我怎样才能优雅地在 Objective-C 中做同样的事情?

起初我认为这种方法可以完成工作:

- (void)getObjects:(id[])aBuffer range:(NSRange)aRange

但是它将对象复制到缓冲区位置。我需要将它们添加回 NSArray 的另一个实例。此外,编译器对保留/释放属性的提示,我真的不太愿意处理。

    id* objs;

NSRange rng = NSMakeRange(1, [v1 count] - 1);

[v1 getObjects:objs range:rng]; # Sending '__strong id *'
# to parameter of type '__unsafe_unretained id *'
# changes retain/release properties of pointer

那么,有没有更优雅的方式呢?或者除了遍历 objectEnumerator 别无他法?

最佳答案

NSArray* v1 = @[@"a",@"b",@"c",@"d"];
NSRange rng = NSMakeRange(1,[v1 count]-1);
NSArray* v2 = [v1 subarrayWithRange:rng];

关于objective-c - 从 NSArray 获取子数组的最优雅的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22035386/

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