2015-06-17 5 views
0

В PhotoFramework для IOS 9 у них есть удобная структура для типа источника.Получение PHAssetSource IOS 8

Есть ли способ идентифицировать тип источника активов на IOS 8?

typedef NS_OPTIONS(NSUInteger, PHAssetSourceType) { 
PHAssetSourceTypeNone   = 0, 
PHAssetSourceTypeUserLibrary  = (1UL << 0), 
PHAssetSourceTypeCloudShared  = (1UL << 1), 
PHAssetSourceTypeiTunesSynced = (1UL << 2), 
} NS_AVAILABLE_IOS(9_0); 

ответ

1

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

PHFetchOptions* fetchOptions = [[PHFetchOptions alloc] init]; 
      PHFetchResult *allPhotosResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options: fetchOptions]; 

      // Get assets from the PHFetchResult object 
      [allPhotosResult enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop) { 
       //NSLog(@"asset %@", asset); 
       PHImageRequestOptions* options = [[PHImageRequestOptions alloc] init]; 
       options.allowNetworkAccess = NO; // <<<< don't allow network access to determine if it's in the cloud or not 
       options.synchronous = YES; // depends on your situation 
       options.deliveryMode = PHImageRequestOptionsDeliveryModeFastFormat; 
[imageManager requestImageDataForAsset: asset options: options resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) { 

// if imageData is nil then it's not on the device, likely in the cloud, otherwise it's local 

} 
+0

Спасибо, Это то, что я думал о том, чтобы делать, это просто казалось таким круглым, чтобы определить его. –