undeclared selector warning 警告处理
来源:互联网 发布:设置windows在文件夹 编辑:程序博客网 时间:2024/05/16 17:51
场景:使用自定义的SDWebImage缓存处理,需要调用一个SDWebImage中的一个私有方法sd_setImage:imageData:basedOnClassOrViaCustomSetImageBlock:
{ // 使用默认的图片 SEL sel = @selector(sd_setImage:imageData:basedOnClassOrViaCustomSetImageBlock:); dispatch_main_async_safe(^{ if ([self respondsToSelector:sel]) { UIImage* image = [UIImage imageNamed:@"image"]; NSData* data = UIImagePNGRepresentation(image); ((void (*)(id, SEL, UIImage*, NSData*, id))(void *) objc_msgSend)((id)self, sel, image, data, nil); } });}
编译遇到一个警告
warning: undeclared selector 'sd_setImage:imageData:basedOnClassOrViaCustomSetImageBlock:' [-Wundeclared-selector] SEL sel = @selector(sd_setImage:imageData:basedOnClassOrViaCustomSetImageBlock:); ^1 warning generated.
- 解决方案1
{ // 使用默认的图片#pragma clang diagnostic push#pragma clang diagnostic ignored "-Wundeclared-selector" SEL sel = @selector(sd_setImage:imageData:basedOnClassOrViaCustomSetImageBlock:);#pragma clang diagnostic pop dispatch_main_async_safe(^{ if ([self respondsToSelector:sel]) { UIImage* image = [UIImage imageNamed:@"image"]; NSData* data = UIImagePNGRepresentation(image); ((void (*)(id, SEL, UIImage*, NSData*, id))(void *) objc_msgSend)((id)self, sel, image, data, nil); } });}
- 解决方案2
{ // 使用默认的图片 // 这种方式也是可以的 // SEL sel = NSSelectorFromString(@"sd_setImage:imageData:basedOnClassOrViaCustomSetImageBlock:"); SEL sel = sel_registerName("sd_setImage:imageData:basedOnClassOrViaCustomSetImageBlock:"); dispatch_main_async_safe(^{ if ([self respondsToSelector:sel]) { UIImage* image = [UIImage imageNamed:@"image"]; NSData* data = UIImagePNGRepresentation(image); ((void (*)(id, SEL, UIImage*, NSData*, id))(void *) objc_msgSend)((id)self, sel, image, data, nil); } });}
引用
How to get rid of the 'undeclared selector' warning
阅读全文
0 0
- undeclared selector warning 警告处理
- 处理xcode警告: warning:performSelector may cause a leak because its selector
- is deprecated编译警告warning处理
- ioS开发--Warning警告处理
- 消灭编译警告(Warning)
- 消灭编译警告(Warning)
- 消灭编译警告(Warning)
- 消灭编译警告(Warning) .
- 消灭编译警告(Warning)
- 消灭编译警告(Warning)
- 消灭编译警告(Warning)
- 去掉warning C4786警告
- 消灭编译警告(Warning)
- 屏蔽VS警告warning
- 编译警告(Warning)
- 消灭编译警告(Warning)
- 消灭编译警告(Warning)
- 消灭编译警告(Warning)
- WKWebView OC和JS交互
- memcached可视化客户端工具
- UIView 的 weak 和 strong 修饰符使用的场景
- IOS串行队列、并行队列进行同步或者异步任务解析
- imageloaderdemo
- undeclared selector warning 警告处理
- Linux关机和重启命令
- 第八周项目一 建立顺序串算法库
- QQ、微信分享总结
- Android JNI-c/c++调用java方法
- 使用XIB自定义UIView
- Objective-C XML/HTML 解析器
- JavaScript之数据类型
- IOS 使用 WKWebView 加载本地的JS和CSS文件出现乱码问题