删除 NSArray 中的 NSString 时遇到问题

发布于 2024-12-05 12:31:06 字数 259 浏览 0 评论 0原文

在 NSArray 中,我有 10 个值。这些值看起来像这样:

Hello
Hello2
My
My2
Name
Name2
Is
Is2
XcodeDev
XcodeDev2

我想从 NSArray 中删除每个第二个 NSString,所以我留下一个如下所示的数组。这些值是随机的,并且不会在每个第二个值后面附加 2!我该怎么做?

Hello
My
Name
Is
XcodeDev

In an NSArray, I have a 10 values. The values look something like this:

Hello
Hello2
My
My2
Name
Name2
Is
Is2
XcodeDev
XcodeDev2

And I want to delete every second NSString from the NSArray, so I am left with an array like the following. The values are random, and do not have 2 appended to every second one! How can I do this?

Hello
My
Name
Is
XcodeDev

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

首先,您需要一个 NSMutableArray 实例,因为 NSArray 是不可变的,因此您无法更改其内容。

NSMutableArray *ary = [NSMutableArray arrayWithArray:anImmutableArray];

然后,您可以创建一个索引集来保存所有奇数索引:

NSMutableIndexSet *indexSet = [[NSMutableIndexSet alloc] init];
for (int i = 1; i < [ary count]; i=i+2) {
    [indexSet addIndex:i];
}

最后,只需在数组上调用 removeObjectsAtIndexes: 方法即可。

[ary removeObjectsAtIndexes:indexSet];

First, you are going to need an instance of NSMutableArray, because NSArrays are immutable and therefore, you cannot change its contents.

NSMutableArray *ary = [NSMutableArray arrayWithArray:anImmutableArray];

Then, you can create an index set that holds all the odd indexes:

NSMutableIndexSet *indexSet = [[NSMutableIndexSet alloc] init];
for (int i = 1; i < [ary count]; i=i+2) {
    [indexSet addIndex:i];
}

Finally, just call removeObjectsAtIndexes: method on the array.

[ary removeObjectsAtIndexes:indexSet];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文