2014-01-06 65 views
0

我试图让每个alasset的网址,这样我就可以AFHTTPRequestOperation发送图像,但我有麻烦的URL列表从我的照片位置字符串数组获取从URL中

这里是alasset对象数组到目前为止我的代码(不工作Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSURL defaultRepresentation]: unrecognized selector sent to instance 0x17ed8170'):

NSLog(@"photos::%@",photoUrls); 
     for (id photos in photoUrls){ 
      ALAsset *asseturl = [NSURL URLWithString:photos]; 
      NSLog(@"photoURL::%@",asseturl.defaultRepresentation.url); 

照片记录是这样的:

photos::(
    "assets-library://asset/asset.JPG?id=CE8A426B-3B59-4172-8761-CC477F3BB3EE&ext=JPG", 
    "assets-library://asset/asset.JPG?id=F4B68A42-1CA0-4880-9FB5-177CB091A28C&ext=JPG" 
) 

所以基本上我需要的网址为每项资产这样我就可以发送他们,我无法弄清楚如何做到这一点?我认为,所有我需要做的是我的字符串URL的数组转换为资产的数组,但无法弄清楚如何

更新的代码:

NSURL *asseturl = [NSURL URLWithString:photos]; 

      ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
      [library assetForURL:asseturl resultBlock:^(ALAsset *asset) 
      { 

      } 
        failureBlock:^(NSError *error) 
      { 
       // error handling 
       NSLog(@"failure-----"); 
      }]; 

回答

1

为什么你认为这是有效的:

ALAsset *asseturl = [NSURL URLWithString:photos]; 

您不能将NSURL对象指定给ALAsset变量,并期望它变为这种类型。您需要使用ALAssetsLibrary方法assetForURL:resultBlock:failureBlock:。结果块将为您提供ALAsset,请求NSURL

+0

ok我已经添加了该方法,但是我在resultBlock中放置了什么来获取alasset(请参阅更新的代码) – BluGeni

+0

放入您需要的任何代码以使用传递给该块的'ALAsset'参数。你的失败块应该记录'error'参数,以便你知道失败的原因。 – rmaddy