2012-04-11 5 views
0

Мое приложение использует «ALAssetsGroup», чтобы отслеживать альбомы пользователейОбновить значения, когда приложение входит передний план

и я отображать эти альбомы в моем приложении пользователь может нажать на альбомы и просматривать изображения, а также.

Теперь проблема возникает, когда пользователь загружает изображения через сафари, или он каким-либо образом изменяет альбомы.

мое приложение по-прежнему держит ссылку на старые альбомы вместо новой так я пытался обновить альбомы, используя

- (void)applicationWillEnterForeground:(UIApplication *)application 

но альбомы до сих пор, кажется, есть старое значение, если я обновить они еще раз «внутри» приложения получают правильные значения.

есть ли что-то еще, что я могу использовать для решения этой проблемы ..? может быть уведомление ..?

ответ

2
 //This Registers a Notification for any changes 
[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(didChangeLibrary:) 
               name:ALAssetsLibraryChangedNotification 
               object:[AGImagePickerController defaultAssetsLibrary]]; 

- (void)didChangeLibrary:(NSNotification *)notification 
{ 
     //Enter some code here to deal with the album changing 
} 

Edit: Похоже, что это не работает на прошивке 5 (радар был открыт для Apple, потому что это ошибка).

Вот работа вокруг, чтобы использовать в то же время:

вызовов

[self.assetsLibrary writeImageToSavedPhotosAlbum:nil metadata:nil 
completionBlock:^(NSURL *assetURL, NSError *error) { }]; 

сразу после создания экземпляра ALAssetsLibrary Observe ALAssetsLibraryChangedNotification (не NSManagedObjectContextObjectsDidChangeNotification)

+0

им боятся, что это не работает на IOS 5,0 –

+0

увидеть мои изменения. теперь он должен работать с iOS 5 – shabbirv

0

Используйте метод applicationDidBecomeActive в ApplicationDelegate

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    /* 
    Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 
    */ 
} 
+0

Все еще дает такие же результаты .. –