Методы в NSString - PullRequest
       3

Методы в NSString

1 голос
/ 09 ноября 2011

Я новичок в задаче C и могу быстро создать приложение для iPhone. Я использую XCode 4.2

.

У меня есть строка (при условии, что строка называется string1) типа NSString, и я хотел бы скопировать сомные символы из этой строки в другую строку NSString (называемую string2). Я хотел бы выполнить следующий алгоритм

If ( string1.char 1 ='a' and string1.char 2 ='b' and string1.char3='c')
{
string2.char1=string1.char4
string2.char2=string1.char5
string2.char3=string1.char6
}

Я не говорю, что приведенный выше код является исполняемым, но это идея, которую я хотел бы реализовать

также, мне нужно добавить другую фреймворк, синтезировать любую переменную? как я уже говорил, я очень новичок во всем этом

Большое спасибо!

Ответы [ 2 ]

5 голосов
/ 09 ноября 2011

Прежде всего, смотреть на документацию Apple всегда хорошая идея. Просто Google "Ссылка класса NSString."

Во-вторых, у NSString есть несколько методов, которые делают то, что вы хотите, один из них

[string1 characterAtIndex:myIndex];

где myIndex - это NSUInteger (в основном, int) вашего индекса интереса.

С помощью этого метода вы можете указать индекс строки (помните, что они начинаются с 0, а не 1) и проверить, какой символ находится там.

if([string1 characterAtIndex:0] == 'a') {
    //do something
}

Также вы можете использовать

 [string1 substringToIndex:myIndex];

для создания подстроки (уменьшенной версии исходной строки, которая будет строкой1), которая состоит из символов в строке1, начиная с индекса 0 (первый символ) и переходя к указанному вами индексу.

Способ

[string1 substringFromIndex:myIndex];

работает аналогично, но создает подстроку, начиная с заданного индекса и перемещаясь в конец строки.

Также важно отметить, что строки, созданные с помощью вышеупомянутых методов, например:

NSString* stringTwo = [string1 substringToIndex:5];

автоматически высвобождаются, что означает, что строка, на которую ссылается переменная 'string1', может и скоро будет стерта из памяти, если вы не оставите за собой право использовать ее, заявив право собственности на нее. То, как вы резервируете права на объект, заявляя о праве собственности на него (официально известное как «сохранение» объекта), вызывается

[string1 retain];

Теперь у вас есть этот объект, и Objective C обещает не освобождать эту память, пока вы не освободите ее, используя

[string1 release];
1 голос
/ 30 января 2012
if ([[string1 substringWithRange:(NSRange){0, 3}] isEqualToString @"abc"]){
string2 = [string1 substringWithRange:(NSRange){0, 3}];
}

где: (NSRange) {начальный индекс, длина}

Используется формат, который вы указали в своем вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...