我正在尝试获取每个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-----");
}];
答案 0 :(得分:1)
为什么你认为这是有效的:
ALAsset *asseturl = [NSURL URLWithString:photos];
您无法将NSURL
对象分配给ALAsset
变量,并期望它会神奇地更改为该类型。
您需要使用ALAssetsLibrary
方法assetForURL:resultBlock:failureBlock:
。结果块将为您提供所请求的ALAsset
的{{1}}。