development

다른 변수와 비교하기 전에 문자열을 변수에 할당해야합니까?

big-blog 2020. 9. 15. 18:52
반응형

다른 변수와 비교하기 전에 문자열을 변수에 할당해야합니까?


의 값을 NSString"Wrong"문자열 과 비교하고 싶습니다 . 내 코드는 다음과 같습니다.

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

정말로 "Wrong"에 대한 NSString을 생성해야합니까?

또한, 나는의 값을 비교할 수 UILabel의를 text문자열로 라벨 값을 할당하지 않고 문자열로?


정말로 "Wrong"에 대한 NSString을 생성해야합니까?

아니요, 그냥하지 않는 이유 :

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

를 사용 @""하면 유효한 NSString.

또한 레이블 값을 문자열에 할당하지 않고 UILabel.text의 값을 문자열과 비교할 수 있습니까?

예, 다음과 같이 할 수 있습니다.

UILabel *label = ...;
if([someString isEqualToString:label.text]) {
    // Do stuff here 
}

if ([statusString isEqualToString:@"Wrong"]) {
    // do something
}

Brian, 여기에 던질 가치도 있습니다. 다른 사람들은 물론 문자열 변수를 선언 할 필요가 없다는 것이 맞습니다. 그러나 다음에 문자열을 선언하려는 경우 다음을 수행 할 필요가 없습니다.

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

위의 방법은 작동하지만, 사용을 마친 후 명시 적으로 해제해야하는 유지 된 NSString 변수를 제공합니다.

다음에 문자열 변수를 원할 때 훨씬 더 편리한 방법으로 "@"기호를 사용할 수 있습니다.

NSString *myString = @"SomeText";

이 작업을 마치면 자동 해제되므로 메모리 누수도 방지 할 수 있습니다.

도움이 되었기를 바랍니다.


자동 해제 된 인스턴스를 생성하고 문자열 형식과 같은 더 많은 옵션이있는 NSString 클래스 메서드를 사용할 수도 있습니다.

NSString *myString = [NSString stringWithString:@"abc"];
NSString *myString = [NSString stringWithFormat:@"abc %d efg", 42];

참고 URL : https://stackoverflow.com/questions/1302985/is-it-necessary-to-assign-a-string-to-a-variable-before-comparing-it-to-another

반응형