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 anInstanceOfYourClass
debug 명령어창에 표시됩니다.너희 반에 수업시간이 없다면debugDescription
기능, 그 다음에description
호출됩니다.
기본 클래스는NSObject
가지고 있다description
실장되어 있습니다만, 매우 베어본입니다.객체의 주소만 표시됩니다.이 때문에, 이 기능을 실장하는 것을 추천합니다.description
정보를 얻고 싶은 모든 클래스에서, 특히,description
method를 지정합니다.사용하시는 경우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
'programing' 카테고리의 다른 글
특별한 달러 기호 셸 변수는 무엇입니까? (0) | 2023.04.23 |
---|---|
테이블 이름 검색 (0) | 2023.04.23 |
WebForms UntruptiveValidationMode를 사용하려면 'jquery'를 위한 ScriptResourceMapping이 필요합니다.jquery(대문자와 소문자가 구분됨)라는 이름의 ScriptResourceMapping을 추가하십시오. (0) | 2023.04.23 |
이미 실행 중인 프로세스를 nohup에 넣는 방법은 무엇입니까? (0) | 2023.04.23 |
비동기 코드에서 비동기 메서드를 호출합니다. (0) | 2023.04.23 |