티스토리 뷰
objc 문법에서 block 은 비동기처리시 delegate 보다 좀더 간편하게 쓸 수 있는 방식이다.
어차피 찾아보면 이론설명은 널리고 널렸으니 예제만 설명한다.
선언부:
typedef void (^ResultCallback)(NSString *result, NSError *error);
...
@property (nonatomic, strong) ResultCallback resultCallback;
...
- (void) requestFunc:(ResultCallback)completion;
만약 requestFunc 라는 함수내에서 콜백처리를 하지 않는다면 resultCallback 을 예제와 같이 property 로 선언해두고 다른 함수내에서 처리도 가능하다.
구현부:
- (void) requestFunc:(ResultCallback)completion
{
//로직상 바로 처리가 불가한 경우 콜백등록.
self.resultCallback = completion;
//가령 네트워크통신 후 바로 처리할 경우
if(error){
completion(data, nil);
}else{
completion(nil, error);
}
}
- (void) otherFunc
{
if(success) {
self.resultCallback(data, nil);
}else //failed
{
self.resultCallback(nil, error);
}
}
이렇게 사용하면 자바나 c# 과 유사한 방식으로 비동기 콜백처리를 할 수 있다.
'Development Note > iOS' 카테고리의 다른 글
[objc] NSMutableArray 에서 NSArray 로 변환하기 (0) | 2021.05.11 |
---|---|
[mac] hosts 파일 수정하기 (0) | 2021.05.11 |
[objc] iOS 페이스북 로그인(Feat.PhotoUrl 얻기) (0) | 2021.05.11 |
[objc/swift] iOS 구글로그인(Feat.PhotoUrl 얻기) (0) | 2021.05.11 |
[objc] objc 프로젝트에서 swift 파일 import 하는법 (0) | 2021.05.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- abs 함수
- Golang
- nsurl 에서 nsstring 변환
- 절대값함수
- LanguageCode
- countryCode
- NSUserDefaults 예제
- abs
- Locale.getDefault().getLanguage()
- tempdir
- Error Domain=SKErrorDomain Code=0
- DeviceModel
- setCancelable vs setCanceledOnTouchOutside
- tempfile
- java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line
- iTunes Store에 연결할 수 없음
- dialog
- permissionCheck
- ioutil
- convert nsurl to nsstring
- countryName
- nsurl to nsstring convert
- 퍼미션체크
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함