如何将 NSRange 存储在 NSMutableArray 或其他容器中?

发布于 2024-09-29 03:35:11 字数 428 浏览 6 评论 0原文

这就是我想要做的:

NSRange r = NSMakeRange(0,5);
id a = [NSMutableArray a];
[a addObject: r]; // but NSRange is not a NSObject *

对于布尔值,我会使用如下代码:

[a addObject: [NSNumber numberWithBool: YES]];

或对于整数:

[a addObject: [NSNumber numberWithInteger: 3]];

那么 NSRange 的等效项是什么?我真正不想做的是创建我自己的 NSObject 子类来完成此任务。苹果已经提供的功能肯定有办法吗?

Here's what I want to do:

NSRange r = NSMakeRange(0,5);
id a = [NSMutableArray a];
[a addObject: r]; // but NSRange is not a NSObject *

With a boolean, I'd use code like this:

[a addObject: [NSNumber numberWithBool: YES]];

or with an integer:

[a addObject: [NSNumber numberWithInteger: 3]];

So what's the equivalent with a NSRange? What I don't really want to do is create my own subclass of NSObject to accomplish this. Surely there's a way with what Apple's already provided?

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

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

发布评论

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

评论(4

如果没有 2024-10-06 03:35:11

使用 NSValue 的 +valueWithRange:。要检索范围结构,请使用 属性 rangeValue< /代码>

[a addObject:[NSValue valueWithRange:r]];
...

NSRange r = a[4].rangeValue;

Use NSValue's +valueWithRange:. To retrieve the range structure back, use the property rangeValue.

[a addObject:[NSValue valueWithRange:r]];
...

NSRange r = a[4].rangeValue;
疯了 2024-10-06 03:35:11
[NSValue valueWithRange:r];

并通过以下方式将其恢复:

NSRange r = [rangeObject rangeValue];
[NSValue valueWithRange:r];

and get it back out with:

NSRange r = [rangeObject rangeValue];
把昨日还给我 2024-10-06 03:35:11

如果您需要将 NSRange 存储在属性列表中,您还可以使用 NSStringFromRangeNSRange 转换为 NSString代码>函数。然后,您可以使用 NSRangeFromString 函数将该字符串转回范围。

If you need to store the NSRange in a property list, you can also turn an NSRange into an NSString using the NSStringFromRange function. And then, you can turn that string back into a range using the NSRangeFromString function.

删除会话 2024-10-06 03:35:11

另一种选择可能是将这些范围添加到 NSIndexSet 中,具体取决于您接下来打算如何使用它们。

One other option might be to add those ranges into an NSIndexSet, depending on how you intend to use them next.

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