ios – 不兼容的块指针类型使用类型表达式初始化’void(^)(struct ALAssetsGroup *,BOOL *)’

ios – 不兼容的块指针类型使用类型表达式初始化’void(^)(struct ALAssetsGroup *,BOOL *)’,第1张

概述我看到SO上的几个人已成功使用此代码.但是我得到了不兼容的块指针错误: 不兼容的块指针类型初始化 void(^)(struct ALAssetsGroup *, BOOL *) 带有类型的表达式 void(^)(ALAsset *, NSUInteger, BOOL *) 任何提示? (编辑完整代码) ALAssetsLibrary *library =[[ALAssetsLibrary allo 我看到SO上的几个人已成功使用此代码.但是我得到了不兼容的块指针错误:

不兼容的块指针类型初始化

voID(^)(struct ALAssetsGroup *,BOol *)

带有类型的表达式

voID(^)(ALAsset *,NSUInteger,BOol *)

任何提示? (编辑完整代码)

ALAssetsLibrary *library =[[ALAssetsLibrary alloc]init];    voID (^assetEnumerator)(struct ALAsset *,BOol *) = ^(ALAsset *result,NSUInteger index,BOol *stop){    if(result != NulL) {                NSLog(@"See Asset: %@",result);            }        };    voID (^assetGroupEnumerator)(struct ALAssetsGroup *,BOol *) =  ^(ALAssetsGroup *group,BOol *stop) {            if(group != nil) {NSLog(@"dont See Asset: ");                [group enumerateAssetsUsingBlock:assetEnumerator];            }        };    [library enumerateGroupsWithTypes:ALAssetsGroupAlbum                               usingBlock:assetGroupEnumerator                             failureBlock: ^(NSError *error) {                                 NSLog(@"Failure");                             }];
解决方法 好吧,新手在块…但我在这里找到了另一个资产组枚举器块的例子,它在声明中没有结构.我尝试从上面的代码中删除它,它仍然正常工作,没有错误消息.希望能更好地理解struct的人可以解释一下吗?

尝试更改此行:

voID (^assetGroupEnumerator)(struct ALAssetsGroup *,BOol *)             = ^(ALAssetsGroup *group,BOol *stop)

对此:

voID (^assetGroupEnumerator)(ALAssetsGroup *,BOol *stop)

我认为底线是ALAssetsLibrary枚举GroupsWithTypes:usingBlock:需要一个看起来像(ALAssetsGroup *,BOol *)的块(struct ALAssetsGroup *,BOol *).

总结

以上是内存溢出为你收集整理的ios – 不兼容的块指针类型使用类型表达式初始化’void(^)(struct ALAssetsGroup *,BOOL *)’全部内容,希望文章能够帮你解决ios – 不兼容的块指针类型使用类型表达式初始化’void(^)(struct ALAssetsGroup *,BOOL *)’所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1007159.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存