2012-10-07 141 views
0

**嗨every1, 我的应用程序的快照正被记录在缓存/快照文件夹中。由于安全问题,我不需要记录这些快照。 我已经使用这个下面的代码,这是我得到这个从网上移除其保存快照:快照保存在缓存/快照

- (void)applicationDidEnterBackground:(UIApplication *)application { 
UIApplication* app = [UIApplication sharedApplication]; 
    UIBackgroundTaskIdentifier __block bgTask; 
    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ 
     [app endBackgroundTask:bgTask]; 
     bgTask = UIBackgroundTaskInvalid; 
    }]; 

    if(UIBackgroundTaskInvalid != bgTask) { 
     // Start the long-running task to kill app after some secs and return immediately. 
     dispatch_after(dispatch_time(DISPATCH_TIME_NOW, KILL_IN_BACKGROUND_AFTER_SECS * 1e09), 
         dispatch_get_main_queue(), ^{ 
          if(goingToQuit) exit(0); 
          [app endBackgroundTask: bgTask]; 
         }); 
    } 
} 
- (void)applicationWillEnterForeground:(UIApplication *)application 
{ 
    // cancel ongoing background suicide. 
    goingToQuit = NO; 

} 

我不想记录这些快照,请在此建议**

回答

0

我想,你是不是添加的代码删除文件:(请参考我的代码片段

- (void) deleteFiles { 
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
     [self beingBackgroundUpdateTask]; 
     NSError *error = nil; 
     // dirPath is path to your snapshot directory 
     NSArray *directoryContents = [fileMgr contentsOfDirectoryAtPath:dirPath error:&error]; 
     if (error == nil) { 
      for (NSString *path in directoryContents) { 
       NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:path]; 
       BOOL removeSuccess = [fileMgr removeItemAtPath:fullPath error:&error]; 
       if (!removeSuccess) { 
        // Error handling 
        ... 
       } 
      } 
     } else { 
      // Error handling 
     } 

     // Do something with the result 
     [self endBackgroundUpdateTask]; 
    }); 
} 
- (void) beingBackgroundUpdateTask { 
    self.backgroundUpdateTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ 
     [self endBackgroundUpdateTask]; 
    }]; 
} 

- (void) endBackgroundUpdateTask { 
    [[UIApplication sharedApplication] endBackgroundTask: self.backgroundUpdateTask]; 
    self.backgroundUpdateTask = UIBackgroundTaskInvalid; 
} 
+0

创造者...所以我需要调用[自我deleteFiles]在ApplicationDidEnterBackground ..那是你在说什么? – Nishan29

+0

当以往任何时候都需要执行删除 – DivineDesert