태그 보관물: cocoa-touch

cocoa-touch

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

의 값을 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";

완료되면 자동 해제되므로 메모리 누수도 방지 할 수 있습니다.

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