Swift - 无法识别的选择器发送到SDWebImage方法上的实例

时间:2018-03-04 13:05:08

标签: ios swift sdwebimage bridging-header

我在项目中添加了ful SDWebImage文件夹。还添加了一个桥接头。我的应用程序在安装过程中不会产生任何问题但是当我尝试访问SDWebImage方法时,它会给出以下异常“无法识别的选择器发送到实例”,错误代码为:

    d_setImageWithURL:placeholderImage:options:completed:]: unrecognized selector sent to instance 0x7f80e7d2e490
2018-03-04 18:53:41.673344+0600 Messenger[24721:203878] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImageView sd_setImageWithURL:placeholderImage:options:completed:]: unrecognized selector sent to instance 0x7f80e7d2e490'
*** First throw call stack:
(
    0   CoreFoundation                      0x000000010f7d11cb __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x000000011028af41 objc_exception_throw + 48
    2   CoreFoundation                      0x000000010f851914 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
    3   UIKit                               0x0000000111aa30bd -[UIResponder doesNotRecognizeSelector:] + 295
    4   CoreFoundation                      0x000000010f754178 ___forwarding___ + 1432
    5   CoreFoundation                      0x000000010f753b58 _CF_forwarding_prep_0 + 120
    6   Messenger                           0x000000010e269a26 _T09Messenger32RMStickerMarketHomeTableViewCellC22showImageFromURLStringySS9urlString_So07UIImageF0C2inSo019UIActivityIndicatorF0C4withtF + 582
    7   Messenger                           0x000000010e26d4ee _T09Messenger32RMStickerMarketHomeTableViewCellC010collectionF0So012UICollectionfG0CSo0iF0C_10Foundation9IndexPathV13cellForItemAttF + 7918
    8   Messenger                           0x000000010e26d84c _T09Messenger32RMStickerMarketHomeTableViewCellC010collectionF0So012UICollectionfG0CSo0iF0C_10Foundation9IndexPathV13cellForItemAttFTo + 92
    9   UIKit                               0x000000011232f426 -[UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes:isFocused:notify:] + 290
    10  UIKit                               0x000000011232f2fe -[UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes:] + 35
    11  UIKit                               0x000000011233481b -[UICollectionView _updateVisibleCellsNow:] + 4775
    12  UIKit                               0x000000011233a710 -[UICollectionView layoutSubviews] + 364
    13  UIKit                               0x0000000111949551 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1331
    14  QuartzCore                          0x00000001114774ba -[CALayer layoutSublayers] + 153
    15  QuartzCore                          0x000000011147b5a9 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 401
    16  UIKit                               0x0000000111933e5f -[UIView(Hierarchy) layoutBelowIfNeeded] + 662
    17  UIKit                               0x000000011193b01c +[UIView(Animation) performWithoutAnimation:] + 90
    18  UIKit                               0x00000001119d4163 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 1354
    19  UIKit                               0x00000001119d44ab -[UITableView _createPreparedCellForGlobalRow:willDisplay:] + 74
    20  UIKit                               0x000000011199a870 -[UITableView _updateVisibleCellsNow:isRecursive:] + 2892
    21  UIKit                               0x00000001119bbde9 -[UITableView layoutSubviews] + 176
    22  UIKit                               0x0000000111949551 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1331
    23  QuartzCore                          0x00000001114774ba -[CALayer layoutSublayers] + 153
    24  QuartzCore                          0x000000011147b5a9 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 401
    25  QuartzCore                          0x00000001114041cd _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 365
    26  QuartzCore                          0x000000011142fae4 _ZN2CA11Transaction6commitEv + 500
    27  QuartzCore                          0x0000000111430830 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 76
    28  CoreFoundation                      0x000000010f773db7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    29  CoreFoundation                      0x000000010f773d0e __CFRunLoopDoObservers + 430
    30  CoreFoundation                      0x000000010f758324 __CFRunLoopRun + 1572
    31  CoreFoundation                      0x000000010f757a89 CFRunLoopRunSpecific + 409
    32  GraphicsServices                    0x0000000118a4d9c6 GSEventRunModal + 62
    33  UIKit                               0x000000011187ad30 UIApplicationMain + 159
    34  Messenger                           0x000000010e2339a7 main + 55
    35  libdyld.dylib                       0x00000001150edd81 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

这是我的桥接头文件代码:

#ifndef Messenger_Bridging_Header_h
#define Messenger_Bridging_Header_h

#import <authsdk/AuthSDKManager.h>
#import <IMSDK/IMManager.h>
#import "OpenUDID.h"
#import "UIImageView+WebCache.h"
#import "OrderedDictionary.h"
#import "UINavigationController+SGProgress.h"
#import "KASlideShow.h"

#endif /* Messenger_Bridging_Header_h */

这是我在我的项目中使用SDWebImage方法的代码:

    func showImageFromURLString(urlString: String, in imageView: UIImageView, with activityIndicatorView: UIActivityIndicatorView) -> Void {
        let imageURL = URL(string: urlString)
        if let url = imageURL{
            activityIndicatorView.isHidden = false
            activityIndicatorView.startAnimating()

//          imageView.setImageWith(url, placeholderImage: nil, options: .cacheMemoryOnly){
//              (image, error, cacheType) in
//              activityIndicatorView.stopAnimating()
//              activityIndicatorView.isHidden = true
//          }
            imageView.sd_setImage(with: url, placeholderImage: nil, options: .cacheMemoryOnly) {
                (image, error, cacheType, url) in
                activityIndicatorView.stopAnimating()
                activityIndicatorView.isHidden = true
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

原因

  

从&#34; Build Phases - &gt;添加Link Binary with Libraries&#34;这补充说   该框架并在该根文件夹中制作了该框架的副本   这些项目。

解决方案

  

使用Libraries从Link Binary中删除库,也从中删除   Project Navigator,然后复制&#34; AppName - &gt;下的框架文件。   AppName - &gt;框架&#34;,然后添加项目导航器,然后添加   链接二进制文件与库

最后在项目桥接标题上添加此行,如下所示,问题应该解决

#ifndef Messenger_Bridging_Header_h
#define Messenger_Bridging_Header_h

#import <SDWebImage/UIImageView+WebCache.h>

#endif /* Messenger_Bridging_Header_h */