반응형
목표 C에서의 NULL 대 0
인observeValueForKeyPath:ofObject:change:context:
- 왜 docs는NULL
대신nil
콘텍스트 포인터를 지정하지 않은 경우
nil
대신 사용되어야 합니다.id
, Java 및 C++ 프로그래머가 오브젝트에 대한 포인터라고 생각할 수 있습니다.사용하다NULL
오브젝트 이외의 포인터의 경우.
이 메서드의 선언을 확인합니다.
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context
콘텍스트는void *
(즉, C스타일의 포인터)그래서,NULL
(때로는 로 선언되기도 한다).(void *)0
)가 아니라nil
(그것은 타입입니다.id
).
기술적으로는 같은 (0)이지만, 일반적으로 오브젝트 C 오브젝트 타입에는 영이 사용되고, c 스타일 포인터에는 NULL이 사용됩니다(void *).
엄밀히 말하면 같은 것으로, 스타일만 다릅니다.
- Objective-C 스타일은 다음과 같습니다.
nil
에 사용할 내용입니다.id
type(및 오브젝트에 대한 포인터)을 입력합니다. - C스타일은 그렇다고 한다.
NULL
에 사용하는 것입니다.void *
. - C++ 스타일은 일반적으로 다음과 같이 말합니다.
0
.
일반적으로 유형이 선언된 언어와 일치하는 변형을 사용합니다.
NULL
의 결과입니다.nil
, 아무것도 표시되지 않는 포인터.
여기서,
를 클릭합니다NULL is zero typed as void*
.
한 가지 중요한 점은 NULL로 메시지를 보낼 수 없기 때문에 많은 장소에서 objective-C에 0을 사용하는 것이 좋습니다.
거의 비슷해요.
nil
는 Objective-C 스타일로 사용됩니다.어디에NULL
C 타입 포인터용이며, 에 대한 typedef'입니다.(void *)
.
언급URL : https://stackoverflow.com/questions/557582/null-vs-nil-in-objective-c
반응형
'programing' 카테고리의 다른 글
다운로드한 Xcode 시뮬레이터를 제거하는 방법 (0) | 2023.04.14 |
---|---|
swift와 함께 isKindOfClass 사용 (0) | 2023.04.14 |
Nullable, __nullable 및 _Nullable in Objective-C의 Nullable의 차이 (0) | 2023.04.14 |
Windows에서 pip install 액세스가 거부되었습니다. (0) | 2023.04.09 |
이미지를 바이트 배열로 변환하는 방법 (0) | 2023.04.09 |