초기화기와 분석기

1502 단어
초기화기는 초기화 대상의 실례나 유형에 사용되며 특수한 함수 대상 초기화기입니다. - (id) init는 여러 개의 반환 값을 다시 불러올 수 있습니다. id 형식 초기화기입니다. + (void) initialize는 반환 값void만 있을 수 있습니다.
분석기는 대상이 가지고 있는 자원을 방출하는 데 사용되며, 반환값이 없는 함수 대상 분석기-(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를 자동으로 호출합니다. (백업 호출)

좋은 웹페이지 즐겨찾기