ARC
자동 참조 계수(Autotic Reference Counting)는 메모리 관리에서 참조에 대해 자동 계수를 적용하는 기술입니다.OC에서 ARC 메커니즘을 사용하고 컴파일러를 통해 관리한다(주의: ARC는 OC 문법이 아니다)메모리 관리에 대한 사고 방식
자신이 생성한 대상은 자신이 소지하고, 자기가 생성한 대상이 아니면 자신도 소지할 수 있다 자신이 보유한 대상이 더 이상 필요하지 않을 때 석방 자신이 보유한 대상이 아니면 석방할 수 없음자신이 생성한 대상은 자신이 가지고 있다
allloc/new/copy/mutableCopy
copy mutableCopy NSCopying NSMutableCopying
자신이 생성하지 않은 대상은 자신도 가질 수 있다
return , NSMutableArray array
자신이 보유한 대상이 더 이상 필요하지 않을 때 방출
, , release
OC 대상에 인용계수라는 정수치를 저장alloc 또는retain을 호출한 후 인용 계수값을 1 더하기release를 호출한 후 인용 계수값이 1로 감소 인용 계수 값이 1인 후에release를 계속 호출하면 시스템은 dealloc 방법으로 대상을 띄운다(이때의 인용 계수 값이 반드시 0이 아니라 방출해야 한다는 것을 알았으면 하나를 줄일 필요가 없다) 애플에서 대상용 메모리 블록의 분배는 메모리 블록 헤드를 고려할 필요가 없다 인용 계수표에 각 메모리 블록 주소가 저장되어 있으며 각 기록에서 각 메모리 블록 주소로 추술할 수 있다autorelease
자동 방출, C 언어의 자동 변수 (국부 변수) 와 유사한 특성 autorelease 사용 방법
NSAutoreleasePool 객체 생성 및 보유 할당된 대상의 autorelease 방법을 호출 NSAutoreleasePool 대상을 폐기한 후 autorelease 방법을 호출한 모든 대상을 추가하면release 방법을 실행합니다
ARC 규칙
소유권 수식자
strong/weak/autoreleaseing/unsafe_unretained
strong은 인용 계수 +1을 변수가 작용역을 초과한 후에 포기하고 폐기 방법을 자동으로 호출합니다weak은 인용 계수를 증가하지 않으며, 어떤 대상의 약한 인용을 가지고 있을 때 대상이 폐기되면 이 약한 인용은 자동으로 효력을 상실하고nil이 부여된 상태에 있다.weak를 사용하면 순환 인용을 방지할 수 있습니다 unsafe_unretained와 weak은 비슷하지만 실효된 대상에 nil을 부여하지 않습니다
ARC 규칙
retain/release/retainCount/autorelease를 사용할 수 없습니다.
NSAllocateObject/NSDeallocateObject를 사용할 수 없습니다.
메모리 관리 방법의 명칭 규칙을 준수해야 한다 dealloc를 현시적으로 호출하지 마십시오.
NSAutoreleasePool 객체 대신 @autoreleasepool 블록 사용
NSZone) 대상형 변수는 C 언어 구조체의 구성원이 될 수 없음 변환 id와void*( bridge 사용) 표시
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.