Как добавить NSString с номером? - PullRequest
0 голосов
/ 19 октября 2011

Я новичок в Какао.

У меня есть NSString - (например, МУЗЫКА). Я хочу добавить несколько новых NSString в массиве, И хочу проверить что-то вроде этого

если МУЗЫКА уже содержится в массиве, добавьте Music_1, после Music_2 и так далее.

Так что мне нужно иметь возможность прочитать это целое число из NSString и добавить его +1.

Спасибо

Ответы [ 4 ]

4 голосов
/ 19 октября 2011

Используйте

NSString *newString = [myString stringByAppendingString:[NSString stringWithFormat:@"_%i", myInteger]];

если myString - это «музыка», newString будет «music_1» или что-то вроде myInteger.

РЕДАКТИРОВАТЬ: Кажется, я получил противоположное значение от другого ответа. Можете ли вы уточнить, что именно вы спрашиваете?

1 голос
/ 19 октября 2011

Для проверки дублирования элемента в массиве вы можете использовать метод -containsObject:.

[myArray containsObject:myobject];

Если у вас очень большой массив, держите NSMutableSet рядом с массивом. Перед добавлением в массив проверьте набор для существования элемента.Если он уже есть в наборе, не добавляйте его.Если нет, добавьте его к обоим.
Если вы хотите уникальные объекты и не заботитесь о порядке вставки, тогда вообще не используйте массив, просто используйте Set.NSMutableSet - более эффективный контейнер.
Для чтения целых чисел из NSString вы можете использовать метод intValue.

[myString intValue];  

Для добавления строки с номером вы можете использовать метод - (NSString *)stringByAppendingString:(NSString *)aString или - (NSString *)stringByAppendingFormat:(NSString *)format ....

1 голос
/ 19 октября 2011

Проверьте это:

NSMutableArray *array = [NSMutableArray arrayWithObjects:@"123", @"qqq", nil];
NSString *myString = @"MUSIC";
NSInteger counter = 0;
if ([array containsObject:myString]){
    NSString *newString = [NSString stringWithFormat:@"%@_%d", myString, ++counter];
    [array addObject:newString];
}
else
    [array addObject:myString];
0 голосов
/ 19 октября 2011

Вот как вы конвертируете строку в int

NSString *myStringContainingInt = @"5";
int myInt = [myStringContainingInt intValue];
myInt += 1;
// So on...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...