광어네 맛집
[Objective - C]Block & 클로저 (공부용) 본문
728x90
반응형
요즘은 Swift로는 라이브러리 만드는 중 ㅎㅎ..
라이브러리 만드는 것도 이래저래 안되는 것도 있어서 개발 경험치 오르는 중 !
아무튼 이번 포스팅은 간단히 Block에 대해서 설명해볼까 함
Swift 에서는 Closure가 여기에 해당하는 듯!
Objective C block 너무 복잡복잡
기본 형태는 앞에 반환타입 중간에는 파라메터 ^(캐럿)을 사용하면 된다
처음 코드 봤을 때는 이게 뭔가 했음
솔직히 이게 맞는가 싶기도 함
Block를 작성할 때 ^(캐럿)을 적는데 블록을 표시하는 심볼 같은 거라고 함
이거 찾는다고 조금 헤맸음
Void (^blockName)(void) = ^{
// 내용 작성
}
사용은 아래처럼도 쓰는 거 같았음
- (void) testNaming:(NSString)naming completion:(void(^)(void)callBack {
NSLog(@"%@", naming)
callBack()
}
안익숙해서 사용 완성이라도 됐으면 좋겠는 바람 ㅎㅎㅎ..
[차이점]
Swift closure에서는 refernce type 인데 captureList를 쓰면 value type으로 바뀌는 거 처럼
Objective C 의 경우 기본이 Value type인데 captureList를 쓰면 reference Type이 됨!
추가로 Swift CaptureList는 '[ , ]' 를 쓰면 되지만
Objective C에서는 _ _ block을 이용하여 Type을 변환함
[주의할 점]
너무 많이 쓰면 메모리 문제가 난다고 함..
아직까지는 코드 읽는 정도라서 체감이 안되지만 ㅎㅎㅎ
MRC에서는 조금 생각하면서 개발해야 함
가볍게 이렇게 내용을 살펴봤는데
심화된 내용은 추후 공부해보고 다시 올리기로!
일단 맛보기로만
오늘도 화이팅!
728x90
반응형
'Objective-C [레거시 뿌수기!] > Objective-C' 카테고리의 다른 글
[objective - C] 반복문 (0) | 2022.04.07 |
---|---|
[Objective - C] AddTarget swift와 차이점 (0) | 2022.04.05 |
[Objective - C]어떻게 리펙토링할 것인가?_손을 많이 탄 코드일 때 (+생각) (0) | 2022.04.02 |
[Objective - C] 어떻게 리펙토링할 것인가?_간결문(+생각) (0) | 2022.03.31 |
[Objective - C] 함수 작성 방법 (0) | 2022.03.30 |