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

问题描述 投票:1回答:1

我在我的项目中添加了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
            }
        }
    }
ios swift sdwebimage bridging-header
1个回答
0
投票

原因:

从“构建阶段 - >链接二进制文件库”中添加了添加框架并在项目的根文件夹中制作了该框架的副本。

解:

从Link Binary with Libraries中删除库,也从Project Navigator中删除,然后在“AppName - > AppName - > Frameworks”下复制框架文件,然后在项目导航器上添加,然后在Link Binary上添加库

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

#ifndef Messenger_Bridging_Header_h
#define Messenger_Bridging_Header_h

#import <SDWebImage/UIImageView+WebCache.h>

#endif /* Messenger_Bridging_Header_h */
© www.soinside.com 2019 - 2024. All rights reserved.