2016-06-23 3 views
1

여러 반환 값에 사용하는 convinient 방법입니다인가 블록 내 아이폰에서 목표 다

- (void)fetchValueForKey:(nonnull NSString*)key WithCompletionHandler:(void(^_Nonnull)(id _Nullable value, NSError* _Nullable error))completionHandler 
    { 
    } 
블록 PARAMS의 보통 이런 종류의 비동기 호출 백업을 위해 사용하기 때문에 나는이 질문을하고

이 여전히 다수의 반환 값을 얻기 위해 블록을 사용하려면 '확인'인가? 사전에 고맙습니다 일부 빛을 털어 놓으십시오

+0

배열 –

+1

을 비동기 호출 용으로 사용하지 않는 이유는 무엇입니까? – Joshua

답변

1

귀하의 의도를 가려서는 안됩니다!

뭔가가 완료 처리기라고하면 코드를 보는 모든 사람 (코드 작성자도 1 주일 후)에서 일부 (비동기식) 콜백을 사용합니다.

-(id)fetchValueForKey:(NSString*)key error:(NSError **)error { ... } 

을 우리가 사용하는 많은 프레임 워크 (당신이 맞는 볼 null 이외의 장식을 추가) 인라인 될 것이다 : 주어진 예에서

, 나는이 적합 할 수 있다고 생각.

다른 경우에는 의미있는 키 (예 : @{@"name" : ..., @"adress" : ...})가있는 사전에 팩할 수 있습니다. 의미 정보가 전혀없는 여러 가지 배열을 반환하는 것이 훨씬 낫습니다.

유형을 안전하고 매우 깨끗하게하려면 해당 속성이있는 전용 클래스를 사용하십시오. 잔인 함을 종종 느끼는 것은 나중에 읽는 즐거움이며 종종 디자인이 상당히 향상 될 수 있음을 보여주고 클래스는 코드 기반에서 훌륭한 시민이됩니다.