초기화기와 분석기
분석기는 대상이 가지고 있는 자원을 방출하는 데 사용되며, 반환값이 없는 함수 대상 분석기-(void) dealloc는 파라미터가 없는 유형 분석기만 있을 수 있습니다.
대상 초기화기가 대상을 초기화할 때, init는 보통 alloc와 함께 사용됩니다.alloc가 한 일 - NSObject 클래스 방법이 포인터를 되돌려줍니다 * 무더기에 적당한 크기의 메모리를 분배합니다 * 속성이나 실례 변수의 메모리를 0으로 설정합니다
init가 하는 일 - 사용자 정의 가능: * 부모 초기화기 [super init] 호출 전치 조건 (필수) 반환 값 id
-(id)init
{
//1.
self = [super init];
//2.
if(self){
//3.
self.name//
_name = [name copy];
}
return self;
}
*현재 객체 인스턴스 변수 초기화(속성 대신 인스턴스 변수 사용)
new는alloc/init를 호출하는 무변수 버전에 해당합니다
Book *b2 = [Book new];// alloc init new
Book *b2 = [Book alloc] initwithName:@"wu"];//
클래스 초기화기
+(void)initialize
{
//self
if(self == [Book class])
{
}
}
initialize는 모든 종류가 사용되기 전에 시스템에서 자동으로 호출되며, 프로세스 주기마다 한 번만 호출됩니다.하위 클래스의 initialize는 부모 클래스의 initialize 전치 호출을 자동으로 호출합니다
대상 분석기 대상 분석기 dealloc는 대상이 가지고 있는 동적 자원을 방출하는 것을 책임진다. 자동 실현: 1.ARC는 객체 속성 참조 수를 수동으로 줄입니다. 2.ARC에서 관리하지 않는 동적 메모리를 방출합니다. 예를 들어malloc에서 분배한 메모리는 수동으로 실행됩니다.파일 핸들 네트워크 포트와 같은 비메모리 자원 닫기
-(void)dealloc
{
// 1. :ARC
//2. : ,
NSLog(@"Book is release")
//3. : dealloc
}
dealloc는 ARC에서 대상의 인용 계수 규칙에 따라 대상의 메모리를 방출하기 전에 자동으로 호출되며 수동으로 호출할 수 없습니다.하위 클래스의 dealloc는 부모 클래스의 dealloc를 자동으로 호출합니다. (백업 호출)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.