从URL中获取alasset对象数组

时间:2014-01-06 17:25:10

标签: ios objective-c

我正在尝试获取每个alasset的网址,以便我可以使用AFHTTPRequestOperation发送图像,但是我无法从我的照片位置字符串数组中获取网址列表

这是我到目前为止的代码(不起作用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"
)

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

更新代码:

  NSURL *asseturl = [NSURL URLWithString:photos];

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

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

1 个答案:

答案 0 :(得分:1)

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

 ALAsset *asseturl = [NSURL URLWithString:photos];

您无法将NSURL对象分配给ALAsset变量,并期望它会神奇地更改为该类型。

您需要使用ALAssetsLibrary方法assetForURL:resultBlock:failureBlock:。结果块将为您提供所请求的ALAsset的{​​{1}}。