我正在尝试创建一个方法,以便为给定的资产url返回一个ALAsset。(我需要稍后上传该资源,并希望在结果块之外进行操作。)
问题是assetToReturn给出了一个EXC_BAD_ACCESS错误。
如果我尝试在块内部分配指针是否存在问题?我看过一些块的例子,但它们总是与像整数等简单类型一起使用。
+ (ALAsset*) assetForPhoto:(Photo*)photo
{
ALAssetsLibrary* library = [[[ALAssetsLibrary alloc] init] autorelease];
__block ALAsset* assetToReturn = nil;
NSURL* url = [NSURL URLWithString:photo.assetUrl];
NSLog(@"assetForPhoto: %@[", url);
[library assetForURL:url resultBlock:^(ALAsset *asset)
{
NSLog(@"asset: %@", asset);
assetToReturn = asset;
NSLog(@"asset: %@ %d", assetToReturn, [assetToReturn retainCount]);
} failureBlock:^(NSError *error)
{
assetToReturn = nil;
}];
NSLog(@"assetForPhoto: %@]", url);
NSLog(@"assetToReturn: %@", assetToReturn); // Invalid access exception coming here.
return assetToReturn;
}
问题是assetToReturn给出了一个EXC_BAD_ACCESS错误。
如果我尝试在块内部分配指针是否存在问题?我看过一些块的例子,但它们总是与像整数等简单类型一起使用。
retainCount
是无用的。 - bbum