Нужно ли присваивать строку переменной, прежде чем сравнивать ее с другой? - PullRequest
85 голосов
/ 20 августа 2009

Я хочу сравнить значение NSString со строкой "Неверно". Вот мой код:

NSString *wrongTxt = [[NSString alloc] initWithFormat:@"Wrong"];
if( [statusString isEqualToString:wrongTxt] ){
     doSomething;
}

Действительно ли мне нужно создать строку NSString для "Wrong"?

Кроме того, можно ли сравнить значение UILabel text со строкой, не назначая значение метки для строки?

Ответы [ 4 ]

178 голосов
/ 20 августа 2009

Действительно ли мне нужно создать строку NSString для "Wrong"?

Нет, почему бы просто не сделать:

if([statusString isEqualToString:@"Wrong"]){
    //doSomething;
}

Использование @"" просто создает строковый литерал, который является допустимым NSString.

Кроме того, можно ли сравнить значение UILabel.text со строкой, не назначая значение метки для строки?

Да, вы можете сделать что-то вроде:

UILabel *label = ...;
if([someString isEqualToString:label.text]) {
    // Do stuff here 
}
26 голосов
/ 20 августа 2009
if ([statusString isEqualToString:@"Wrong"]) {
    // do something
}
8 голосов
/ 20 августа 2009

Брайан, также стоит добавить сюда - остальные, конечно, правы, что вам не нужно объявлять строковую переменную. Однако в следующий раз, когда вы захотите объявить строку, вам не нужно делать следующее:

NSString *myString = [[NSString alloc] initWithFormat:@"SomeText"];

Несмотря на то, что вышесказанное работает, оно предоставляет сохраненную переменную NSString, которую вам нужно будет явно освободить после того, как вы закончили ее использовать.

В следующий раз, когда вам понадобится строковая переменная, вы можете использовать символ "@" гораздо более удобным способом:

NSString *myString = @"SomeText";

Это будет автоматически выпущено, когда вы закончите с этим, так что вы также избежите утечек памяти ...

Надеюсь, это поможет!

2 голосов
/ 20 августа 2009

Вы также можете использовать методы класса NSString, которые также создадут автоматически выпущенный экземпляр и будут иметь больше параметров, таких как форматирование строки:

NSString *myString = [NSString stringWithString:@"abc"];
NSString *myString = [NSString stringWithFormat:@"abc %d efg", 42];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...