programing

NSLog에서 사용하는 "toString()"에 대한 Objective-C는 무엇입니까?

powerit 2023. 4. 23. 11:34
반응형

NSLog에서 사용하는 "toString()"에 대한 Objective-C는 무엇입니까?

커스텀 클래스에서 덮어쓸 수 있는 방법이 있나요?

      NSLog(@"%@", myObject) 

라고 하는 것은, 오브젝트의 필드(또는 중요하다고 생각되는 것)를 인쇄하는 것입니까.자바와 동등한 Objective-C를 찾고 있습니다.toString().

바로 그description인스턴스 메서드, 다음과 같이 선언:

- (NSString *)description

다음은 구현 예시입니다(grahamparks 덕분에).

- (NSString *)description {
   return [NSString stringWithFormat: @"Photo: Name=%@ Author=%@", name, author];
}

이 항목을 에 추가합니다.@implementation사진 클래스:

- (NSString *)description {
   return [NSString stringWithFormat:@"Photo: Name=%@ Author=%@",name,author];
}

NSObject의 설명 방법을 재정의할 수 있습니다.

- (NSString *)description

로깅과 관련하여 Objective-C에서 로그인을 더 잘 할 수 있도록 이 블로그 포스트를 추천합니다.

사용할 수 있는 기능은 두 가지가 있습니다.

- (NSString*)description

이것은 오브젝트를 I.E. 파라미터로 지정했을 때 표시됩니다.NSLog기타 설명 함수는 다음과 같습니다.

- (NSString*)debugDescription

이 경우 호출됩니다.po anInstanceOfYourClassdebug 명령어창에 표시됩니다.너희 반에 수업시간이 없다면debugDescription기능, 그 다음에description호출됩니다.

기본 클래스는NSObject가지고 있다description실장되어 있습니다만, 매우 베어본입니다.객체의 주소만 표시됩니다.이 때문에, 이 기능을 실장하는 것을 추천합니다.description정보를 얻고 싶은 모든 클래스에서, 특히,descriptionmethod를 지정합니다.사용하시는 경우description당신의 코드에 따르면, 저는 당신이 이 코드에debugDescription그리고 또...debugDescription좀 더 장황하게.

사용 가능한 음성이 출력됩니다.

    NSLog((@"speechVoices:%", [[AVSpeechSynthesisVoice speechVoices] description] ));

CoreData(즉 NSManagedObject를 상속하는 클래스)로 "description"을 덮어쓰는 @Nuthatch의 코멘트가 강조되어야 한다고 생각합니다.

https://developer.apple.com/documentation/coredata/nsmanagedobject?language=objc

설명을 덮어쓰지 않도록 합니다.이 방법을 사용하면 디버깅 동작 중에 장애가 발생할 경우 결과를 예측할 수 없습니다.

언급URL : https://stackoverflow.com/questions/1104746/what-is-the-objective-c-equivalent-for-tostring-for-use-with-nslog

반응형