2014-09-27 23 views
0

我認爲AssetLibrary的組(專輯)枚舉api不再適用於ios 8.02,enumerateGroupsWithTypes:usingBlock:枚舉所有組時不會返回最近添加的組,並在調用庫組時返回空值(記錄爲://包括所有資產庫組。)iOS 8.02中的錯誤?打破ALAssetsLibrary枚舉,任何解決方法?

這是我的代碼

+(void)loadCameraRollGroupFromAssetLibrary:(ALAssetsLibrary *)assetLibrary withBlock:(void (^)(BOOL hasPermission, YLCameraRollGroup *cameraRoll))block { 
    __block BOOL foundCameraRoll = NO; 
    [assetLibrary enumerateGroupsWithTypes:ALAssetsGroupLibrary usingBlock:^(ALAssetsGroup *assetsGroup, BOOL *stop) { 
     if(assetsGroup){ 
      YLCameraRollGroup *group = [[YLCameraRollGroup alloc] initWithAssetsGroup:assetsGroup]; 
      if(group.isCameraroll){ 
       NSLog(@"found camera roll"); 
       *stop = YES; // this fucking stop didn't work, don't know why 
       foundCameraRoll = YES; 
       block(YES, group); 
       return; 
      } 
     } 
     else{ 
      if(!foundCameraRoll){ 
       NSLog(@"no camera roll"); 
       block(NO, nil); 
      } 
     } 
    } failureBlock:^(NSError *error) { 
     block(NO, nil); 
    }]; 
} 


-(id)initWithAssetsGroup:(ALAssetsGroup *)assetsGroup{ 
    self = [super init]; 

    if(self){ 
     self.name = [assetsGroup valueForProperty:ALAssetsGroupPropertyName]; 
     NSLog(@"loaded group: %@", self.name); 
     self.assetsGroup = assetsGroup; 

#if TARGET_IPHONE_SIMULATOR 
     self.isCameraroll = [self.name isEqualToString:@"Saved Photos"]; 
#else 
     self.isCameraroll = [self.name isEqualToString:@"Camera Roll"] || [self.name isEqualToString:@"Recently Added"]; 
#endif 
    } 

    return self; 
} 

是否發生在其他人?

+0

您使用'ALAssetsGroupAll'枚舉時看到了哪些組名? – Xyand 2014-09-27 20:12:50

+0

我看到除「最近添加」和「最近刪除」之外的所有組。這是什麼改變了,在iOS 8.0上它返回了「最近添加」專輯。 – 2014-09-28 07:11:28

回答

1

ALAssetsGroupLibrary:庫組,其中包括從iTunes同步的所有資產。

這不是相機膠捲。無相機設備的相機膠捲或已保存照片應位於ALAssetsGroupSavedPhotos。我認爲他們從8.0.2中的Recently Added恢復了它。

相關問題