iOS 7.1中的SDWebImage崩溃问题

5

我刚刚更新了我的xcode,并开始为iOS 7.1构建我的应用程序。但现在我发现我的SDWebImage已经损坏了。每当我尝试为UIImageView设置一个ImageWithUrl时,我的应用程序就会崩溃,并显示以下异常和堆栈跟踪:

2014-03-11 12:55:36.647 Wiggle[1983:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImageView setImageWithURL:placeholderImage:options:]: unrecognized selector sent to instance 0x10fa12890'


*** First throw call stack:
(
    0   CoreFoundation                      0x0000000103188795 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x0000000102eeb991 objc_exception_throw + 43
    2   CoreFoundation                      0x0000000103219bad -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
    3   CoreFoundation                      0x000000010317a09d ___forwarding___ + 973
    4   CoreFoundation                      0x0000000103179c48 _CF_forwarding_prep_0 + 120
    5   Wiggle                              0x000000010001fe94 -[MenuTableViewController tableView:viewForHeaderInSection:] + 1316
    6   UIKit                               0x000000010182cdb3 __84-[UITableView _sectionHeaderView:withFrame:forSection:floating:reuseViewIfPossible:]_block_invoke + 112
    7   UIKit                               0x00000001017b60ac +[UIView(Animation) performWithoutAnimation:] + 70
    8   UIKit                               0x000000010182ccc5 -[UITableView _sectionHeaderView:withFrame:forSection:floating:reuseViewIfPossible:] + 223
    9   UIKit                               0x00000001018149cf -[UITableView _updateVisibleHeadersAndFootersNow:] + 2596
    10  UIKit                               0x0000000101815b6f -[UITableView _updateVisibleCellsNow:] + 3122
    11  UIKit                               0x0000000101826381 -[UITableView layoutSubviews] + 207
    12  UIKit                               0x00000001017bdb27 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 354
    13  QuartzCore                          0x0000000100bb7a22 -[CALayer layoutSublayers] + 151
    14  QuartzCore                          0x0000000100bac589 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 363
    15  QuartzCore                          0x0000000100bac40a _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24
    16  QuartzCore                          0x0000000100b21694 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 252
    17  QuartzCore                          0x0000000100b2270c _ZN2CA11Transaction6commitEv + 394
    18  UIKit                               0x0000000101779444 _afterCACommitHandler + 128
    19  CoreFoundation                      0x0000000103153ff7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    20  CoreFoundation                      0x0000000103153f67 __CFRunLoopDoObservers + 391
    21  CoreFoundation                      0x00000001031336d2 __CFRunLoopRun + 946
    22  CoreFoundation                      0x0000000103132f33 CFRunLoopRunSpecific + 467
    23  GraphicsServices                    0x00000001036a53a0 GSEventRunModal + 161
    24  UIKit                               0x0000000101762043 UIApplicationMain + 1010

我不确定该怎么做,有人可以帮忙吗?


你的代码中是否已经导入了 UIImageView+WebCache.h 类别头文件,并在 Other Linker Flags 中添加了 -ObjC - Amar
完全没问题,如果我为SDK 7.0构建我的应用程序,一切都正常。它也可以在iOS 7.1上运行。但是,如果我将基本SDK设置为7.1,应用程序就会崩溃。 - Daan Olislagers
1
你的项目同时也是为 arm64 构建的吗?如果是,请尝试排除 arm64 架构。另外,您是将 SDWebImage 作为子项目添加还是作为静态库 .a 文件添加的? - Amar
谢谢,问题已解决!我不得不将我的项目和我的pods中的“Build Active Architectures Only”设置为NO。 - Daan Olislagers
很高兴能够帮助。您可以使用您所做的修复来回答您的问题,以便帮助其他人。 - Amar
2个回答

10

多亏了Amar,我找到了答案。

SDWebImage与基础SDK iOS 7.1一起使用,需要在

项目 > 构建设置 > 架构 > 可用架构

中排除arm64。您可能还需要将仅构建活动架构设置为才能让它正常工作。


救命稻草!非常感谢! - Jaimoto

1

显然现在有许多64位设备,你不再想这样做,相反你想下载与新架构兼容的最新SDWeb库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接