iOS 애플리케이션에서 백그라운드 앱 새로 고침을 시도하고 있습니다. 그러나 코드 블록을 이해하는 데 문제가 있습니다.코드 블록을 속성 목표에 할당하십시오. c
나는 그것에 대한 연구를 해왔으며, 지금까지 초보자의 이해가 있다고 말할 수 있습니다. 해당 메서드는 다음과 같습니다.
-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{
이 메서드는 UIBackgroundFetchResult 반환 형식을 원합니다. 하지만 내 응용 프로그램의 복잡성으로 인해 쉽게 반환 할 수는 없습니다. 백그라운드 모드에서 인터넷에서 데이터를 가져올 때 많이 발생합니다.
해당 메서드의 본문에는 완료 블록이있는 사용자 지정 메서드가 있습니다. 내가 뭘 하려는지 완성 처리기에 할당 될 내 코드에서 다른 사용자 지정 메서드를 정의합니다. performFetchWtihCompletionHandler 방법 구현에서
@property (copy, nonatomic) void (^fetchCompleted)(UIBackgroundFetchResult);
, 내 데이터 관리자를 호출합니다 : 나의 데이터 관리자에서
이, 내가 속성이 정의 내 다운로드가 완료되면
-(void)fetchNewDataWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{
_fetchCompleted = completionHandler;
_state = DMSMT_WaitingForPartnerData;
[self getActiveQueues];
}
, I fetchCompleted 메소드를 호출하십시오.
[self fetchCompleted];
여기에 내 pr 거짓말 oblem. UIBackgroundFetchResult 인수를 전달해야하지만 그렇게 할 방법이 없습니다. 나는 [self fetchCompleted : UIBackgroundFetchResultNewData]를 시도했다. 그러나 그것은 나에게 호통 쳤다.
아이디어가 있으십니까?
미리 감사드립니다.
편집
:다음은 수정이었다. 너무 간단!
if(_fetchCompleted != nil){
[self fetchCompleted](UIBackgroundFetchResultNewData);
}
감사! 이것은 훌륭하게 작동했습니다. 나 같은 간단한 구문 문제 때 나는 그것을 싫어! 이봐도 – Salx