본문 바로가기

블록2

[Objectvie-c 의 블록] objectvie c 블록[block] 2장 메모리 영역 "iOS와 OS X의 메모리 관리와 멀티스레딩 기법"에서는 블록은 Objectvice-C 객체라고 설명을 쭉~~해준다. 한번 읽어보시길.. 두번 읽어 봤는데 사실 5번 더 읽어 봐야겠다.. 객체이기 때문에 데이터 영역(_NSConcrete GlobalBlock), 스택(_NSConcreteStackBlock), 힙(_NSConcreteMallocBlock) 등 존재 할 수 잇다. 1장에서 우리가 쓴 형태는 _NSConcreteStackBlock 클래스 형태를 사용해서 스택 영역에 생겼다. 스택영역..{}를 벗어나면 지역 변수 및 그 안에 있는 코드는 폐기된다..그런데..__block 변수와 블록은 스택에서 힙으로 복사(copy)를 하는 기능을 제공한다. ARC 환경에서는 컴파일러가 자동으로 필요한 부분을.. 2019. 11. 8.
[Objectvie-c 의 블록] objectvie c 블록[block] 1장. 이 글은 제가 공부했던 것을 정리 했을 뿐이니..혹시 제가 잘못 된 것을 알고 있다면 댓글로 꼭 알려주세요.! Objective-c 블록(block) 먼저 objectvie-c(옵젝) 의 블록에 대해서 알아 보자. 'iOS와 OS X의 메모리 관리와 멀티스레딩 기법" 에서는 블록은 '지역 변수와 함께 동작하는 익명 함수' 라고 정의를 내렸다. 익명 함수란? 말 그대로 이름이 없는 함수를 말한다. 다른 언어에서는 클로저, 또는 람다라고도 말한다. ^ 리턴 타입 (인자 목록) (표현) 예) ^ int (int count) { return count + 1;} 이런식으로 표현이 된다. 변수로 선언을 할 경우 int (^blk)(int) = ^(int count){return count +1}; (아무리 해도 .. 2019. 11. 8.