object-c 학습노트:대상 초기화
1625 단어 object
init 표준 쓰기:
-
init
{
if
(self
=
[super init]) {
//
do some thing
}
return
self;
}
object - c에서 이 초기화 방법은 정말 이상하다. self는alloc에서 메모리를 분배한 후에 변화가 발생한다.약간 엉뚱한 느낌: (.object-c베이스 이 책에서는 아버지 함수가 서로 다른 상황에 따라 하나의 대상을 재생성할 수 있다는 설명이다. 자류의 변수는 정확하게 반응할 수 있을까? 원래 생성된 실례를 어떻게 없애야 하는가? 여전히 안개다. 기본적인 사실은 [super init]는 서로 다른 대상을 되돌릴 수도 있고, nil로 되돌릴 수도 있다. 단지 먼저 기억할 수 있을 뿐이다.
위의 문제와 같이 만약 이런 코드를 사용한다면 정확합니까?
Car* car = [Car alloc];
[car init];
만약에 정상적인 사고방식에 따르면 이것은 정확하기 때문에 alloc는 메모리를 분배하는 것을 책임진다. init는 초기화 값일 뿐이다. 그러나 [car init]는 서로 다른 대상을 되돌릴 수 있기 때문에 모든 것을 이렇게 써야 한다.
Car* car = [[Car aollc] init];
이 문제에서 가장 흔히 볼 수 있는 것은 NSString 클래스이다. 만약에 문자열이 너무 길거나 영어가 아니라면 다른string 클래스로 되돌아갈 수 있다. 사실 NSString은 사용자가 사용하는 유일한 인터페이스이지만 실제로는 그 뒤에 클래스가 있다. object-c의 동적 특성 때문에 당신이 실제로 사용하는 클래스가 무엇인지 알 필요가 없다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
localStorage에 객체를 추가하는 방법은 무엇입니까?이 노트에서는 localStorage에 객체를 삽입하는 방법을 보여드리겠습니다. 경우에 따라 로컬 스토리지 또는 세션 스토리지에 데이터를 개체로 저장해야 할 수 있습니다. 어떻게 이것을 달성할 수 있습니까? 객체가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.