2014-03-26 1 views
1
  • 하나의 노래를 다운로드하고 iCloud에 동기화합니다.
  • 설정 -> iCloud -> 저장소 관리 -> 내 응용 프로그램으로 이동하여 모든 파일을 삭제합니다.
  • 나는 내 응용 프로그램에 가서 (NSMetadataQueryDidFinishGatheringNotification 및 NSMetadataQueryDidUpdateNotification)에서 알림을 확인 -> NSMetadataQuery.results 1 개 항목 (이전 값)

가 사전에 대단히 감사를 반환합니다.iCloud : 설정 장치에서 파일을 삭제할 때 NSMetadataQuery가 잘못된 결과를 반환합니다.

enter code here 

    - (void)processiCloudFiles:(NSNotification *)notification { 
     [_query disableUpdates]; 
     [_iCloudNames removeAllObjects]; 
     int totalItems = _query.resultCount; // it not update here 
     //OR: _query.results 
    } 
    - (void)startQuerying { 
     [self stopQuery]; 
     _query = [self documentQuery]; 
     [[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(processiCloudFiles:) 
              name:NSMetadataQueryDidFinishGatheringNotification 
              object:nil]; 
     [[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(processiCloudFiles:) 
              name:NSMetadataQueryDidUpdateNotification 
              object:nil]; 
     [_query startQuery]; 
    } 

    - (void)stopQuery { 
     if (_query) { 
     [[NSNotificationCenter defaultCenter] removeObserver:self name:NSMetadataQueryDidFinishGatheringNotification object:nil]; 
     [[NSNotificationCenter defaultCenter] removeObserver:self name:NSMetadataQueryDidUpdateNotification object:nil]; 
     [_query stopQuery]; 
     _query = nil; 
     } 
    } 

    - (NSMetadataQuery *)documentQuery { 
     NSMetadataQuery * query = [[NSMetadataQuery alloc] init]; 
     if (query) { 
      [query setSearchScopes:[NSArray arrayWithObject:NSMetadataQueryUbiquitousDocumentsScope]];   
      NSString * filePattern = [NSString stringWithFormat:@"*.%@", FILE_EXTENSION]; 
      [query setPredicate:[NSPredicate predicateWithFormat:@"%K LIKE %@", 
         NSMetadataItemFSNameKey, filePattern]]; 
     } 
     return query; 
    } 
+0

언젠가 NSMetadataQuery가 잘못된 값을 반환합니다. 이 문제를 해결하기 위해 tmp 파일을 추가하고이 파일을 iCloud에 업로드하기 전에 삭제하십시오. – nmh

답변

1

사용자가 홈 버튼을 누르면 문서 폴더에 임시 파일이 생성됩니다. 사용자가 장치 설정 및 노래 삭제로 이동했기 때문에이 작업을 수행하십시오.

사용자가 응용 프로그램으로 이동하면이 임시 파일을 삭제하여 iCloud에서 데이터 목록을 새로 고칠 수 있습니다.

희망이 도움이됩니다.

+0

우리가 어떻게 할 수 있는지에 대한 예제 코드를 자세히 공유해 주실 수 있습니까? – Chandni

관련 문제