Подтвердить что ты не робот

Как сохранить NSRange в NSMutableArray или другом контейнере?

Вот что я хочу сделать:

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 для достижения этого. Конечно, есть способ, с которым Apple уже предоставила?

4b9b3361

Ответ 2

[NSValue valueWithRange:r];

и вернуть его с помощью:

NSRange r = [rangeObject rangeValue];

Ответ 3

Если вам нужно сохранить NSRange в списке свойств, вы также можете включить NSRange в NSString с помощью функции NSStringFromRange. И затем вы можете вернуть эту строку в диапазон с помощью функции NSRangeFromString.

Ответ 4

Другим вариантом может быть добавление этих диапазонов в NSIndexSet, в зависимости от того, как вы собираетесь использовать их далее.